【发布时间】:2013-04-19 21:33:46
【问题描述】:
我有一个正在调用的静态函数,它给出了一个奇怪的错误。下面是一个php代码示例:
class foo {
public $stat;
public function __construct() {
$this->stat = stat::isValid('two');
}
}
class stat {
protected static $invalidNumbers = array('one', 'two');
function isValid($number) {
return in_array($number, static::$invalidNumbers);
}
}
$foo = new foo();
var_dump($foo->stat);
此代码导致以下错误:
Fatal error: Access to undeclared static property: foo::$invalidNumbers
但是,将 static:: 更改为 self:: 会使代码按预期运行。我的印象是在这种情况下使用static:: 应该可以工作。
为什么使用static会出现这个错误?
【问题讨论】: