名爲$class
的變量包含類的名稱。訪問「變量」類的成員
如何訪問該類的靜態成員?
我需要一種可以在PHP 5.2中工作的方法。
在PHP 5.3以下工作:
$class::$default_error_message;
在PHP 5.2它輸出:
unexpected T_PAAMAYIM_NEKUDOTAYIM
順便說一句,T_PAAMAYIM_NEKUDOTAYIM
?! PHP不停地讓我驚歎不已。
名爲$class
的變量包含類的名稱。訪問「變量」類的成員
如何訪問該類的靜態成員?
我需要一種可以在PHP 5.2中工作的方法。
在PHP 5.3以下工作:
$class::$default_error_message;
在PHP 5.2它輸出:
unexpected T_PAAMAYIM_NEKUDOTAYIM
順便說一句,T_PAAMAYIM_NEKUDOTAYIM
?! PHP不停地讓我驚歎不已。
function getStaticMember($class, $member) {
if(is_object($class))
$class = get_class($class);
$classObj = new ReflectionClass($class);
$result = null;
foreach($classObj->getStaticProperties() as $prop => $value) {
if($prop == $member) {
$result = $value;
break;
}
}
return $result;
}
另外:
按預期工作!謝謝! – 2011-04-13 21:03:23
$values = get_class_vars($class);
echo $values["default_error_message"];
他試圖讀取一個靜態變量,而不是調用一個函數。 – 2011-04-13 20:59:18
非常真實,改變了答案。 – 2011-04-13 21:01:12
我相信'$ default_error_message'必須變成''default_error_message''。除此之外,這是一個很好的方法。非常優雅。 – 2011-04-13 21:06:40
FYI:「PAAMAYI M NEKUDOTAYIM「顯然是希伯來語的」雙冒號「。 PHP還將解析器標記「T_DOUBLE_COLON」定義爲我猜的別名,但希伯來語版本現在是一個衆所周知的笑話。 – AgentConundrum 2011-04-13 20:59:10