2012-10-22 115 views
0
$this->property = 'SomeClass'; 

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

這是PHP中的錯誤嗎?類屬性作爲類名稱

是否可以使用該屬性調用靜態方法,而不將該值賦值給新變量,而是使用該變量?

+0

您正在使用什麼版本的PHP? – FoolishSeth

+0

php 5.3.0。它在其他工作嗎? – Alex

+0

不是我所知道的。此行爲位於範圍解析運算符doc的註釋中,但由於某些原因,運算符不在運算符文檔的優先級圖表中。從我能告訴你不能用任何東西,包括它本身鏈接::。在5.3中使用變量來引用類名的能力在5.3中是新的,但我想他們沒有超出這個範圍。 – FoolishSeth

回答

2

使用call_user_func

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