안녕하세요, 저는 객체를 호출 중이고 일부 객체는 다른 객체를 포함하고 있습니다. foreach를 사용하여 각 속성을 통해 새 배열에 넣고 if 문 내부에 foreach 내부에 다른 객체가 들어 있는지 확인하고 또 다른 foreach를 사용하여 객체 속성 내에서 객체의 속성을 가져 오는 지 확인합니다.PHP에서 객체를 가로 지르려고하는 중
문제는 일단 깊이가 2 레벨로 떨어지면 객체가 떨어져 있다는 것을 알 수 있습니다. is_object 테스트를 수행하여 true를 반환하지만 travesere 속성을 사용하려고하면 그 중 일부 정보가 표시되지 않습니다. 그것.
private static function prepare_page($output_object) {
foreach ($output_object as $object) {
if (is_a($object, "subjects")) {
$return_object["{{::SUBJECT::}}"] = $object->name;
}
if (is_a($object, "posts")) {
$return_object["{{::POST::}}"] = $object->name;
foreach ($object as $atribute => $value) {
if (is_object($value) || is_array($value)) {
foreach ($object as $property => $val) {
if (is_object($val)) {
echo "It's an object inside an object";
dump($val);
//works till here lets me know its an object and shows the $val with its contents (objects)
foreach ($val as $ob => $at) {
//breaks down here if i dump the $ob or $at it doesn't do anything
if (!is_object($at)) {
$return_object["{{::>>".strtoupper($ob)."::}}"] = $at;
} else {
// repeat process
}
}
} else {
$return_object["{{::==".strtoupper($property)."::}}"] = $val;
}
}
} else {
if (!is_object($value) && !is_array($value)) {
$return_object["{{::".strtoupper($atribute)."::}}"] = $value;
}
}
}
}
}
return $return_object;
}
미리 도움을 청하십시오.
방법을 가리킬 수 있습니까? 이렇게 :'$ object-> method'. 'foreach' 결과 내에서'$ value-> attribute'처럼 사용할 수도 있습니다. IMO는 중첩 된'foreach'는 당신이 필요로하는 객체 나 메소드를 가리킬 수있을 때 나쁜 생각입니다. :) – Kebman