人们在我的网站上报告此问题。但代码如下:
$class = get_called_class();
$instance = new \ReflectionClass($class);
$class::$List = array_flip($instance->getConstants()); // Error here
我绝对不会自己弄错。
有人知道发生了什么吗?
答案 0 :(得分:2)
get_called_class()
。我猜您没有看到错误,因为您的本地主机上有error_reporting(0)
或类似内容。
class Test {
static public function test() {
echo get_called_class(); //OK
}
}
不
<?
echo get_called_class(); //Not OK
?>
<强>更新即可。尤里卡!
$class = get_called_class();
$instance = new \ReflectionClass($class);
$class::$List = array_flip($instance->getConstants()); // Error here
应该是
...
$instance::List = array_flip($instance->getConstants());
您正尝试在字符串上设置静态不存在的值。 get_called_class()
返回一个字符串,而不是一个对象,当然不是static class
。
答案 1 :(得分:0)
在某些版本的PHP 5.3.x中,似乎getConstants已损坏。