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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Правильный обход массива объектов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Алексей_М
Отправлено: 10 Мая, 2016 - 15:58:07
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Добрый день,
Подскажите, пожалуйста, правильно ли работаю с объектами?

Есть массив объектов $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.  


я правильно делаю вообще обход массива объектов и получения объектов внутри объекта?
Работать-то работает, но верно ли всё это?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB