【发布时间】:2017-06-20 08:14:41
【问题描述】:
我正在使用new 关键字创建我的模型对象。但是每次都创建了两个对象。我的代码是
class DashBoardController extends Controller
{
public static $count=0;
public function __construct()
{
DashBoardController::$count++;
}
public function dashboard(Request $request)
{
$obj = new DashBoardController();
echo DashBoardController::$count;
}
}
它给了我输出
O/P:2
【问题讨论】:
-
您从
dashboard()函数获得输出,对吗?在这种情况下,这是因为您在回显计数之前再次创建了一个新实例。因此,它会将您的$count属性增加两次。 -
@FMashiro 我编辑了我的问题,实际上该类扩展了控制器,但在这里我只使用 new 创建一个对象,所以构造函数应该只被调用一次并且计数只增加到 1
-
所以,如果我理解正确,你要做的就是:
$dashboard = new DashBoardController(); echo $dashboard::$count;,然后返回 2?? -
@FMashiro 是的,$count 是一个静态变量,所以我只是用类名来调用它
-
但我的意思是,这是您脚本的唯一内容吗?制作一个只包含那个和你的类的测试文件,以确保它可以在其他地方被调用。
标签: php laravel class object laravel-5