类属性作为类名

时间:2012-10-22 01:33:37

标签: php class properties static

$this->property = 'SomeClass';

$x = new $this->property();     // works
$x = $this->property::create(); // fails (parse error)

这是PHP中的错误吗?

可以使用属性调用静态方法,而不将值赋给新变量,而是使用该变量吗?

2 个答案:

答案 0 :(得分:2)

使用call_user_func

$x = call_user_func(array($this->property, 'create'));

答案 1 :(得分:1)

已经输入了几个月的bug并且仍然处于打开状态,所以我会选择是。

https://bugs.php.net/bug.php?id=61397

类似地,

https://bugs.php.net/bug.php?id=54095