从php中的静态函数访问变量

时间:2013-02-23 11:05:57

标签: php

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

class SomeClass
{
    protected $_someMember;

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

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

2 个答案:

答案 0 :(得分:3)

你希望做这样的事情

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

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

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

答案 1 :(得分:2)

您可能希望查看有关static的PHP文档。正如您应该注意的那样,静态函数无法访问对象属性。

事实上,如果你正在努力学习ins&amp;在PHP的OOP实现中,您可能需要查看here