【问题标题】:How do I access variables with hyphenated names in Smarty?如何在 Smarty 中访问带有连字符名称的变量?
【发布时间】:2010-04-08 17:11:10
【问题描述】:

我有一个 PHP 页面,它使用 SimpleXml 解析 XML 文件,然后将该对象传递给 Smarty 模板。我的问题是 XML 文件的标签名称中有连字符,例如video-player。在 PHP 中,这没问题,我只使用 $xml->{'video-player'} 一切都很好。另一方面,当我尝试使用该语法时,Smarty 会出现问题。

到目前为止,我想出的唯一解决方案是使用变量来存储名称,例如,

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

但这至少可以说不是非常优雅。在 Smarty 中是否有另一种更好的方法来引用连字符变量名?

【问题讨论】:

    标签: php simplexml smarty variable-names


    【解决方案1】:
    {php}
        echo $xml->{'video-player'};
    {/php}
    

    【讨论】:

    • 有道理,但我想知道是否有办法在不求助于 PHP 的情况下做到这一点......
    • 另一种方法是用不同的东西改变 Smarty 分隔符 { 和 },但只做 {php} 会更容易 - smarty.net/manual/en/language.escaping.php
    【解决方案2】:

    Dwoo我试试

    {$xml->`video-player`}
    

    也许在Smarty 也可以。

    【讨论】:

      【解决方案3】:

      你只需要把它放在单引号内。

      它也适用于比较块,例如:

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

      而不是

      {if $variable == hyphenated-value} do not work! {/if}
      

      【讨论】:

        猜你喜欢
        • 2011-01-10
        • 1970-01-01
        • 2011-02-16
        • 1970-01-01
        • 2014-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多