0

这是一个来自 php 的程序。我无法从静态函数中打印受保护变量的值。这个程序有什么问题?

class SomeClass
{
    protected $_someMember;

    public function __construct()
    {
        $this->_someMember = 1;
        self::getSomethingStatic();
    }

    public static function getSomethingStatic()
    {  
        echo $_someMember * 5; 
    }
}
$obj = new SomeClass();
4

2 回答 2

3

你期望做这样的事情

class SomeClass
{
    protected static $_someMember = <default value>;

    public function __construct()
    {
        self::getSomethingStatic();
    }

    public static function getSomethingStatic()
    {  
        echo static::$_someMember * 5; 
    }
}
$obj = new SomeClass();
于 2013-02-23T11:09:36.840 回答
2

您可能希望查看 PHP 关于static的文档。正如您应该注意到的,静态函数不能访问对象属性。

事实上,如果你想了解 PHP 的 OOP 实现的细节,你可能想看看这里

于 2013-02-23T11:08:54.357 回答