Php 类属性作为类名

Php 类属性作为类名,php,class,properties,static,Php,Class,Properties,Static,这是PHP中的一个bug吗 是否可以使用属性调用静态方法,而不将值赋给新变量,而是使用该变量?Usecall\u user\u func $this->property = 'SomeClass'; $x = new $this->property(); // works $x = $this->property::create(); // fails (parse error) 使用call\u user\u func $this->property = '

这是PHP中的一个bug吗


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

Use
call\u user\u func

$this->property = 'SomeClass';

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

使用
call\u user\u func

$this->property = 'SomeClass';

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

它已经作为一个bug输入了几个月,并且仍然处于打开状态,所以我将选择yes

同样地


它已经作为一个bug输入了几个月,并且仍然处于打开状态,所以我选择“是”

同样地


您使用的是什么版本的PHP?PHP 5.3.0。它对其他人有用吗?我不知道。此行为出现在范围解析运算符文档的注释中,但由于某些原因,该运算符不在运算符文档的优先级图表中。据我所知,你不能把::和任何东西连在一起,包括它本身。使用变量引用类名with::的功能在5.3中是新的,但我想他们没有做得更多。@Alex,为什么不使用
$x->create()
,因为您有一个
SomeClass
的实例,无论如何,您不能这样做。您使用的是什么版本的PHP?PHP5.3.0。它对其他人有用吗?我不知道。此行为出现在范围解析运算符文档的注释中,但由于某些原因,该运算符不在运算符文档的优先级图表中。据我所知,你不能把::和任何东西连在一起,包括它本身。使用变量引用类名with::的功能在5.3中是新的,但我想他们没有做得更进一步。@Alex,为什么不使用
$x->create()
,因为您有一个
SomeClass
的实例,无论如何,您不能这样做。