我有一個包含其他對象循環通過包含對象的PHP
即
$obj->sec_obj->some_var;
我想通過對象使用一個foreach循環來和所有對象的對象PHP對象一個對象。我認爲最高水平是3,所以
$obj->sec_obj->third_obj->fourth_obj
任何想法?
我有一個包含其他對象循環通過包含對象的PHP
即
$obj->sec_obj->some_var;
我想通過對象使用一個foreach循環來和所有對象的對象PHP對象一個對象。我認爲最高水平是3,所以
$obj->sec_obj->third_obj->fourth_obj
任何想法?
這只是基本的遞歸。
function loop($obj)
{
if (is_object($obj)) {
foreach ($obj as $x) {
loop($x);
}
} else {
// do something
}
}
編輯:打印鍵和值:
function loop($obj, $key = null)
{
if (is_object($obj)) {
foreach ($obj as $x => $value) {
loop($value, $x);
}
} else {
echo "Key: $key, value: $obj";
}
}
看看這個頁面:http://www.php.net/manual/en/language.oop5.iterations.php
您可以使用foreach
循環,雖然對象的公共成員,所以你可以用遞歸函數來做到這一點。
如果你想變得更有趣,你可以使用迭代器。