За последние 24 часа нас посетил 8821 программист и 672 робота. Сейчас ищут 156 программистов ...

Удалить объект, если в ключе имеется тире

Тема в разделе "PHP для новичков", создана пользователем Андрей С., 9 фев 2020.

Метки:
  1. Андрей С.

    Андрей С. Новичок

    С нами с:
    9 фев 2020
    Сообщения:
    2
    Симпатии:
    0
    Всем привет.

    Имеется некий объект, мне нужно из него удалить под-объект. Обычно делаю так:
    unset($data->list);

    Но у меня ключ содержит тире "-" и уже таким способом не удалить:
    unset($data->list->name-9);

    Я гуглил, читал по форумам, везде описана работа с ключами объектов,
    где нет тире. Как удалить такой под-объект или как работать с такими ключами.

    Ошибка вылазит стандартная "Parse error: syntax error, unexpected". Указывает, на строку, где удаляю под-объект.

    Спасибо.
     
  2. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.681
    Симпатии:
    277
    @Андрей С., объект с ключами, подобъект - не удивительно что нихрена не получается если придумывать свою собственную терминологию.
     
  3. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    10.075
    Симпатии:
    958
    Адрес:
    там-сям
    @Андрей С. php поддердживает такие конструкции:
    $obj->{'any name here'}

    Код (Text):
    1.  
    2. $ php artisan tinker
    3. Psy Shell v0.9.12 (PHP 7.3.14 — cli) by Justin Hileman
    4. >>> $arr = ['sigma' => 1, 'beta' => 2, 'alfa-centraur' => 3];
    5. => [
    6.   "sigma" => 1,
    7.   "beta" => 2,
    8.   "alfa-centraur" => 3,
    9.   ]
    10. >>> $obj = (object)$arr;
    11. => {#3013
    12.   +"sigma": 1,
    13.   +"beta": 2,
    14.   +"alfa-centraur": 3,
    15.   }
    16. >>> $obj->beta;
    17. => 2
    18. >>> $obj->{'alfa-centaur'};
    19. PHP Notice:  Undefined property: stdClass::$alfa-centaur in Psy Shell code on line 1
    20. >>> $obj->{'alfa-centraur'};
    21. => 3
    22. >>>
    --- Добавлено ---
    Уж не знаю насколько это тебе поможет :) Но вот такое обращение к "подобъекту" возможно )))
     
    Андрей С. нравится это.
  4. Андрей С.

    Андрей С. Новичок

    С нами с:
    9 фев 2020
    Сообщения:
    2
    Симпатии:
    0

    Спасибо огромное. Ваш ответ очень помог :)
    --- Добавлено ---

    Могли бы написать правильную терминологию, помогли бы мне и другим новичкам. Иначе какой был смысл от вашей записи, я и сам знаю, что не в полной мере владею терминологией, по этому пишу в раздел для новичков :)