Как получить доступ к переменным с дефисными именами в Smarty? - PullRequest
1 голос
/ 08 апреля 2010

У меня есть страница PHP, которая анализирует XML-файл с помощью SimpleXml, а затем передает этот объект в шаблон Smarty. Моя проблема в том, что в файле XML есть дефисы в именах тегов, например video-player. В PHP это не проблема, я просто использую $xml->{'video-player'} и все хорошо. Smarty, с другой стороны, расстраивается, когда я пытаюсь использовать этот синтаксис.

Единственное решение, которое я до сих пор придумал, - это использование переменной для хранения имени, например,

{ assign var=name value="video-player" }
{ $xml->$name }

Но это не так уж грациозно, если не сказать больше. Есть ли другой, лучший, подход к обращению к имени переменной в Smarty?

Ответы [ 3 ]

3 голосов
/ 08 апреля 2010
{php}
    echo $xml->{'video-player'};
{/php}
0 голосов
/ 21 июня 2011

Вам просто нужно поместить его в одинарные кавычки.

Он также работает на блоках сравнения, таких как:

{if $variable == 'hyphenated-value'} it works! {/if}

вместо

{if $variable == hyphenated-value} do not work! {/if}
0 голосов
/ 08 апреля 2010

В Dwoo попробую с

{$xml->`video-player`}

возможно в Smarty это тоже будет работать.

...