[英]Accessing an Object Property from a string
我希望能夠從單個字符串訪問屬性的值...
$obj->Test->FGH = "Well Done!";
我努力了
var_dump($obj->{'Test->FGH'});
和
var_dump( eval( '$obj->Test->FGH' ) );
我知道,下面的方法會起作用,但是必須從字符串中定義
var_dump ($obj->Test->FGH);
我也知道下面的方法會起作用,但是它不能訪問FGH屬性。
var_dump ($obj->{'Test'});
那么如何從字符串返回$ obj-> Test-> FGH的值呢?
您需要遞歸遍歷對象結構,直到找到該屬性。
這是完成任務的遞歸函數。
僅當搜索到的值不是對象時才有效。 如果您要查找的屬性是一個對象,則必須修改它,具體取決於$props
數組是否為空。
$props
參數需要按照嵌套對象屬性的相同方式進行排序。
您還可以修改它以將字符串作為第二個參數,例如Test/FGH
function search_property($obj, $props) {
$prop = array_shift($props);
// If this is an object, go one level down
if (is_object($obj->$prop)) {
return search_prop($obj->$prop, $props);
}
if (!isset($obj->$prop)) {
return false;
}
return $obj->$prop;
}
$val = search_property($obj, array('Test', 'FGH'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.