Я не могу понять, почему он говорит, что я пытаюсь получить свойство необъекта, когда мой var_dump
говорит, что у меня есть объект. Ниже вывод моих var_dump
. В нем четко сказано:
["chooseImagesTypes"]=>
object(stdClass)#1620 (2) {
["chooseImagesTypes0"]=>
object(stdClass)#1619 (3) {
Так что говорится, что оба являются объектами. Я попытался добавить (object)
перед моим кодом, чтобы убедиться, что это объект, а не массив, но это не сработало. Вот полный var_dump
, плюс сообщение об ошибке и мой код.
var_dump
object(stdClass)#1622 (4) {
["images0"]=>
object(stdClass)#1617 (2) {
["mediaManagerImagesSubform"]=>
object(stdClass)#1618 (3) {
["maxOrMinSize"]=>
string(9) "min-width"
["mediaQuerySize"]=>
string(3) "959"
["chooseImagesTypes"]=>
object(stdClass)#1620 (2) {
["chooseImagesTypes0"]=>
object(stdClass)#1619 (3) {
["mediaManagerOrUrl"]=>
string(1) "1"
["mediaManagerImage"]=>
string(0) ""
["externalUrlImage"]=>
string(44) "homepage/joomla-london-hero-image--1200.webp"
}
}
}
Мой код
<code> echo "<pre>";
var_dump($images);
echo "
"; echo ''; foreach ($ images as $ image) {foreach ($ image-> mediaManagerImagesSubform as $ imageSubform) {foreach ((объект) $ imageSubform-> chooseImagesTypes как $ imageType) {if (! пусто ($ imageType [$ i] -> $ externalUrlImage)) {$ imageURL = $ imageType [$ i] -> $ externalUrlImage;} else {$ imageURL = $ imageType -> $ mediaManagerImage;} echo '«;} echo '
';echo "";}
Сообщение об ошибке
Notice: Trying to get property 'chooseImagesTypes' of non-object in /x~/default.php on line 54
Почему он говорит, что это не объект?
Есть ли лучший способ сделать вложенныйзаявления foreach?
То, что я пытался.
Приведение его в качестве объекта с использованием (объекта). Также без этого.
(object)$imageSubform->chooseImagesTypes
Использование итерационных обозначений, как это (с и без). Я пробовал это в разных местах, но безрезультатно.
$imageType[$i]
Меня смущает то, что другие части, кажется, работают с использованием того же кода, и я не вижу разницы. Обычно в подобных случаях я обнаруживаю, что это массив, но var_dump
и print_r
оба ссылаются на него как на объект, а приведение с использованием (object)
не исправляет его (хотя, если это массив, я просто использую ['arrayItem']
).