2
我在这里绞尽脑汁。就在我认为我理解了某些东西的时候,我被证明是错误的。PHP静态变量构造
我的问题涉及使用静态方法,静态变量和__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,其中类似这样的事情正在成功完成,但为什么它不能正常工作正在让我发疯。
有什么想法?
预先感谢您。
不要在构造函数初始化静态变量。构造函数用于初始化新对象,应该可以在类上使用静态属性(不必调用任何构造函数)。 –
@CarlGroner感谢您的评论。但我不明白你为什么说'不要在构造函数中初始化静态变量......'它似乎有时会非常有益。你能解释一下吗? – VIDesignz
我想如果您不希望在创建类的对象之前获得该值,但是我无法想象出许多情况,那么这很有好处。即使你想让构造函数修改该值,一个明确的初始值也会更好。 –