我在这里绞尽脑汁。就在我认为我理解某些事情时,我被证明是错误的。
我的问题涉及使用静态方法,静态变量和__construct魔术方法。让我们来看看这个例子
<?php
class DummyStatic
{
public static $variable;
public function __construct()
{
self::$variable = 'Dummy Text';
}
public static function text()
{
return self::$variable;
}
}
$dummyText = DummyStatic::text();
?>
我假设当我致电DummyStatic::text();
时它会返回Dummy Text
。
我在另一个项目中使用MVC,这样的事情正在取得成功,但为什么它不能独立工作让我发疯。
有什么想法吗?
提前谢谢。
答案 0 :(得分:1)
它不会返回“Dummy Text”,因为构造函数从未执行过。构造函数仅在类的新实例上执行。
$foo = new DummyStatic();
echo DummyStatic::text();
然而,这会打印出“Dummy Text”