Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Правильный обход массива объектов
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Правильный обход массива объектов

Страниц (1): [1]
 

1. Алексей_М - 10 Мая, 2016 - 15:58:07 - перейти к сообщению
Добрый день,
Подскажите, пожалуйста, правильно ли работаю с объектами?

Есть массив объектов $dannie:

CODE (htmlphp):
скопировать код в буфер обмена
  1. stdClass Object
  2. [peoples] => Array
  3.         (
  4.             [0] => stdClass Object
  5.                 (
  6.                     [key] => 12345
  7.                     [Name] => Имя
  8.                     [info] => stdClass Object
  9.                         (
  10.                             [podrobno] => stdClass Object
  11.                                 (
  12.                                      [txt] =>..
  13.    
  14.                             )
  15.  
  16.                         )
  17.  
  18.                 )
  19.  
  20.  
  21.             [1] => stdClass Object
  22.                 (
  23.                     [key] => 12345
  24.                     [Name] => Имя
  25.                     [info] => stdClass Object
  26.                         (
  27.                             [podrobno] => stdClass Object
  28.                                 (
  29.                                      [txt] =>..
  30.    
  31.                             )
  32.  
  33.                         )
  34.  
  35.                 )
  36.  
  37.  
  38. И т.д.
  39.  


чтобы вывести данные на экран я делаю
PHP:
скопировать код в буфер обмена
  1. foreach ($dannie as $elem)
  2.         {
  3.                 foreach ($elem as $element)
  4.                 {
  5.                           echo "$element->key | $element->Name ";
  6.                             }
  7.              }
  8.  


Если же мы хотим вывести еще внутренний объект info то, мы не можем его писать в echo, типа:
PHP:
скопировать код в буфер обмена
  1. Echo$element->info->podrobno->txt;
  2.  


потому что тогда получим ошибку:
Object of class stdClass could not be converted to string


Поэтому перед выводом надо сделать это в переменную
PHP:
скопировать код в буфер обмена
  1. $podrobno =  $element->info->podrobno->txt;
  2.  

а потом уже в echo
PHP:
скопировать код в буфер обмена
  1.                  echo "$element->key | $element->Name  | $podrobno";
  2.  


я правильно делаю вообще обход массива объектов и получения объектов внутри объекта?
Работать-то работает, но верно ли всё это?

 

Powered by ExBB FM 1.0 RC1