Почему не работает вывод доп. поля без использования кавычек и при наличии дефиса/минуса в названии поля?

Приветствую.
Вывожу доп. поле в шаблоне.

Вывожу так (работает):
{$_modx->resource.name}

Вывожу так (не работает):
{$_modx->resource.name-1}

Вывожу так (работает):
{$_modx->resource."name-1"}

Я так понимаю, что без кавычек не работает поле, в имени которого присутствует знак дефиса/минуса. Объясните, пожалуйста, почему так происходит.
weranda
17 сентября 2020, 17:01
modx.pro
543
0

Комментарии: 3

Артем
17 сентября 2020, 17:49
+1
Объясните, пожалуйста, почему так происходит.
Потому что имена переменных должны соответствовать правилам именования переменных в php. В php ты не можешь создать переменную name-1.
Правильный доступ к таким ключам осуществляется так:
{$_modx->resource['name-1']}
Если ключ массива соответствует правилам, то можно обращаться к нему через точку:
{$_modx->resource.name}
    weranda
    17 сентября 2020, 17:52
    0
    Спасибо за объяснение.
    SEQUEL.ONE
    25 сентября 2020, 18:13
    0
    В специфике работы баз данных тоже не следует указывать названия таблиц и полей со спец. символами и цифрами, только латинскими буквами.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3