PHP构造与静态变量

时间:2015-11-26 00:29:42

标签: php oop constructor static

我在这里绞尽脑汁。就在我认为我理解某些事情时,我被证明是错误的。

我的问题涉及使用静态方法,静态变量和__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,这样的事情正在取得成功,但为什么它不能独立工作让我发疯。

有什么想法吗?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

它不会返回“Dummy Text”,因为构造函数从未执行过。构造函数仅在类的新实例上执行。

$foo =  new DummyStatic();
echo DummyStatic::text();

然而,这会打印出“Dummy Text”