За последние 24 часа нас посетили 49758 программистов и 1732 робота. Сейчас ищут 655 программистов ...

Вывод данных, ООП

Тема в разделе "Прочие вопросы по PHP", создана пользователем TigerZaka, 4 авг 2013.

  1. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    Доброго времени суток!

    нашел пример, но не могу в нем разобраться.
    подскажите, как вывести данные из массива $myArray ?

    Код (Text):
    1. class News {
    2.     public $id;
    3.     public $title;
    4.     public $desc;
    5.    
    6.     public function __construct($id, $title, $desc) {
    7.         $this->id = $id;
    8.         $this->title = $title;
    9.         $this->desc = $desc;
    10.     }
    11.    
    12.     public function get_title() {
    13.         return $this->title;
    14.     }
    15. }
    16.  
    17. class NewsDB {
    18.     function __construct() {}
    19.    
    20.     public function fromDB() {
    21.    
    22.         $myArray = array(
    23.                         array('id' => '1', 'title' => 'первый заголовок', 'desc' => 'первое описание'),
    24.                         array('id' => '2', 'title' => 'второй заголовок', 'desc' => 'второе описание')
    25.         );
    26.    
    27.         foreach ($myArray as $key => $value) {
    28.             $outPut[] = new News($value['id'], $value['title'], $value['desc']);
    29.                
    30.         }
    31.         return $outPut;
    32.     }
    33. }
     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    метод fromDB у вас возвращает массив, ну его и разбирайте.
     
  3. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    Что fromDB массив возвращает я понял. Вообще, как я понимаю на все полученные значения у меня создается один объект.
    Я дальше
    Код (Text):
    1. print_r(NewsDB::fromDB());
    не могу уйти ))
    Мне получается еще foreach надо использовать, чтобы значения разбить или что-то еще?
    Посоветуйте хотя бы логику

    Добавлено спустя 18 минут 7 секунд:
    ну вот вроде foreach я не могу использовать потому что у меня объект (
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    а ты попробуй
     
  5. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    Код (Text):
    1. $data = NewsDB::fromDB();
    2.  
    3. foreach ($data as $key => $n) {
    4.     foreach ($n as $inn => $value) {
    5.         echo $value['title'];
    6.     }
    7. }
    а почему мне выводится:
    я так понимаю это первые символы, но почему?

    Добавлено спустя 24 минуты 9 секунд:
    Код (Text):
    1. foreach ($data as $key => $n) {
    2.     foreach ($n as $inn => $value) {
    3.         echo "[$inn] = $value <br/>";
    4.     }
    5. }
    вот что на выходе:
    как только заголовки собрать?

    Добавлено спустя 5 минут 5 секунд:
    и даже так:
    Код (Text):
    1. foreach ($data as $key => $n) {
    2.     foreach ($n as $value) {
    3.         echo $value['title'];
    4.     }
    5. }
    выводит
    что это за загадка? ))
     
  6. kosinus2012

    kosinus2012 Активный пользователь

    С нами с:
    16 июл 2012
    Сообщения:
    137
    Симпатии:
    0
    Посмотрите внимательнее что у вас выводит:
    Код (Text):
    1. Array
    2. (
    3.     [0] => News Object
    4.         (
    5.             [id] => 1
    6.             [title] => первый заголовок
    7.             [desc] => первое описание
    8.         )
    9.  
    10.     [1] => News Object
    11.         (
    12.             [id] => 2
    13.             [title] => второй заголовок
    14.             [desc] => второе описание
    15.         )
    16.  
    17. )
    Опишите, что для вас представляют элементы многомерного массива?

    Добавлено спустя 7 минут 4 секунды:
    Код (Text):
    1. if
     
  7. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Зачем все так усложнили я не понял, можно и одним классом решить... Себя же запутываете.
     
  8. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    Ну двумя классами я решил сделать, дабы потом c mvc тренироваться (типа контроллер модель сразу)
    kosinus2012, а что я проверяю if'ом?
    для меня это ключ->значение
     
  9. kosinus2012

    kosinus2012 Активный пользователь

    С нами с:
    16 июл 2012
    Сообщения:
    137
    Симпатии:
    0
    Ничего вам не говорит это:
    Код (Text):
    1. [0] => News Object
    Добавлено спустя 3 минуты 52 секунды:
    Как мы обращаемся к элементам объекта? Если поймете тогда эта часть кода вообще не нужна
    Код (Text):
    1.   foreach ($n as $value) {
    2.        echo $value['title']
    3. }
     
  10. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    !! по моему до меня дошло:
    Код (Text):
    1.  
    2. foreach (NewsDB::fromDB() as $key => $n) {
    3.     var_dump($n->title);
    4.  }
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    О, да, детка! Так приятно видеть, когда люди понимают, а не просто копипастят.
     
  12. kosinus2012

    kosinus2012 Активный пользователь

    С нами с:
    16 июл 2012
    Сообщения:
    137
    Симпатии:
    0
    Ура товарищ! :)
     
  13. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    ))) спасибо всем!