За последние 24 часа нас посетили 25253 программиста и 1727 роботов. Сейчас ищут 785 программистов ...

Вывод

Тема в разделе "PHP для новичков", создана пользователем q0b3rMAN, 1 ноя 2018.

  1. q0b3rMAN

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

    С нами с:
    11 июн 2011
    Сообщения:
    142
    Симпатии:
    0
    ДД. У меня массив есть с данными полученными из JSON...
    Выглядят данные в JSON вот так:
    Код (Text):
    1. name: myname
    2. category-id: 8
    В коде, в цикле foreach:
    Код (Text):
    1. echo $data->name;
    Выводится myname.
    Собственно с этим, все нормально и всё понятно.
    Однако, если начать выводить category-id:
    Код (Text):
    1. echo $data->category-id;
    Не выводится, так как в category-id есть дефис.
    Вопрос, как сделать чтобы вывести данные из category-id.

    Заранее спасибо
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.857
    Симпатии:
    656
    Нельзя в лексемах использовать дефис. Конвертируйте не в набор свойств, а в ассоц. массив, чтобы обращаться при помощи $data['category-id'], либо, что еще лучше, не используйте в именах полей дефисы, а используйте подчеркивания.
     
  3. q0b3rMAN

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

    С нами с:
    11 июн 2011
    Сообщения:
    142
    Симпатии:
    0
    Здравствуйте.
    Знаю что нельзя. Использую не я, а API откуда данные получаю.
    Я вас понял. Дело в том что так мне нравится оформление кода.;) в целом я догадывался, что проблема именно в этом. Думал что есть решение с дефисом.
    Спасибо.
     
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @q0b3rMAN, вот такой вариант:
    PHP:
    1. $foo = new stdClass();
    2. $str = 'item-0';
    3. $foo->$str = 'item-0-value';
    4. var_dump($foo);
    С пачкой последующих "неудобств" :)