Почему не работает вывод доп. поля без использования кавычек и при наличии дефиса/минуса в названии поля?
Приветствую.
Вывожу доп. поле в шаблоне.
Вывожу так (работает):
Вывожу так (не работает):
Вывожу так (работает):
Я так понимаю, что без кавычек не работает поле, в имени которого присутствует знак дефиса/минуса. Объясните, пожалуйста, почему так происходит.
Вывожу доп. поле в шаблоне.
Вывожу так (работает):
{$_modx->resource.name}
Вывожу так (не работает):
{$_modx->resource.name-1}
Вывожу так (работает):
{$_modx->resource."name-1"}
Я так понимаю, что без кавычек не работает поле, в имени которого присутствует знак дефиса/минуса. Объясните, пожалуйста, почему так происходит.
Комментарии: 3
Объясните, пожалуйста, почему так происходит.Потому что имена переменных должны соответствовать правилам именования переменных в php. В php ты не можешь создать переменную name-1.
Правильный доступ к таким ключам осуществляется так:
{$_modx->resource['name-1']}
Если ключ массива соответствует правилам, то можно обращаться к нему через точку:{$_modx->resource.name}
Спасибо за объяснение.
В специфике работы баз данных тоже не следует указывать названия таблиц и полей со спец. символами и цифрами, только латинскими буквами.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.