내가 다른 개체객체 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
를 사용할 수 있지만 개체의 public 멤버, 당신 때문에 재귀 함수로 그렇게 할 수 있습니다.
좀 더 멋지기를 원한다면 Iterator를 사용할 수 있습니다.
재귀 함수를 사용하십시오. 전달 된 값이 찾고있는 값이 아닌 객체 인 경우 자체를 호출하는 함수입니다. 무한 루프에 빠지지 않도록 조심하십시오!
여기는 좋은 기사입니다.