0
我需要調用類中的某些函數;基於變量,像這樣:數組到字符串轉換 - 變量函數名稱調用
$x->$y();
但是,我發現了一個奇怪的現象,請考慮下面的示例代碼:
$arr = array(
"some_index" => "func_name"
);
$str = "func_name";
class some_class {
public function func_name() {
echo "It works in class!";
}
}
$some_obj = new some_class();
$some_obj->$arr['some_index']();
$some_obj->$str();
現在行
$some_obj->$arr['some_index']();
給人的錯誤:
Array to string conversion in ...
Undefined property: some_class::$Array in ...
Uncaught Error: Function name must be a string in...
不過,該行
$some_obj->$str();
完美的作品。
此外,如果函數未在類中定義,則兩條線都可以工作。
任何人都知道爲什麼會發生這種情況?
'$ some_obj - > {$改編[ 'some_index']}();' – splash58
是啊,這工作...你知道錯誤的原因?它曾經在PHP –
以前的版本中工作,「爲了使用變量變量* ... http://php.net/manual/en/language.variables.variable.php – splash58