У меня есть объект внутри массива, который хранится в переменной $image
array(1) { [250]=> object(Magento\Framework\DataObject)#11025 (1) { ["_data":protected]=> array(26) { ["value_id"]=> string(3) "250" ["file"]=> string(58) "/i/n/insetktenschutz-doppeltuer-im-zargenrahmen_37_1_3.jpg" ... } } }
Если я попытаюсь вернуть значение, например, такой файл:
echo $image->getFile();
Тогда Конечно, я получаю Неустранимая ошибка: необученная ошибка: вызов функции-члена getFile () для массива
Поэтому я попытался вызвать ее следующим образом:
$image = $image[0];
echo $image->getFile();
Но Я получаю Exception # 0 (Exception): Примечание: неопределенное смещение: 0
Итак, я попытался привести его к объекту:
$image = (object) $image;
echo $image->getFile();
Теперь я получаю Неустранимая ошибка: необработанная ошибка: вызов неопределенного метода stdClass :: getFile ()
Затем я использовал foreach
:
foreach($image as $i) {
echo $image->getFile(); // alternative: $image->getData('file')
}
, и это работает! Почему он работает с foreach и как я могу заставить его работать без него?