【问题标题】:substr PhpFox variablesubstr PhpFox 变量
【发布时间】:2014-03-19 04:05:05
【问题描述】:

如何将 PhpFox 变量与 substr 一起使用?当我在 {php} {/php} 中使用变量时,它给了我未定义的变量:

示例:

我有变量:{$aFeed.feed_image_onclick}

现在我想在我的模板文件中替换这个变量:

{php} substr($aFeed.feed_image_onclick, 1, 3);{/php} 

但是甚至可以在 {php} 标签中使用类生成的变量吗?

谢谢!

【问题讨论】:

    标签: php phpfox templatetags


    【解决方案1】:

    避免使用 {php}{/php} 块,这是做事的 hacky 方式。 相反,在您的 php 控制器 (/module/my_module/include/component/controller/my_controller.class.php) 中进行所有处理,包括子字符串、对服务函数的调用等。然后赋值给一个模板变量:

    $this->template()->assign(array('some_var' => $my_thing));
    

    当您在模板中使用 {php} 块时,您正在编写稍后将编译的代码,您可以使用类变量,但这样做的方式很糟糕(查看其中一个缓存文件,您将找到所有使用的变量)

    【讨论】:

      【解决方案2】:

      是的,你可以。变量被称为

      $this->_aVars['your_variable']
      

      但如果你在一个循环中,那么你必须这样做

      {foreach from=$aPage key=i item=page}
         {php} echo $this->_aVars['page']; {/php}
      {/foreach}
      

      要回答您的问题,您必须这样做:

      <span class="values">{php} echo substr($this->_aVars['aFeed']['feed_image_onclick'],1,3); {/php}</span>
      

      PS 只要我的 2 美分:如果有可能,开发人员会使用它——不管它是否“hacky”。​​

      【讨论】:

        【解决方案3】:

        试试这个

            {$aFeed.feed_image_onclick|substr:1:3}
        

        Phpfox 模板中,| 之前是函数的第一个参数,| 之后是函数的名称,如果您想将多个参数传递给函数,则只需在函数之后添加 : 或参数并添加我在此代码中添加的参数。此代码将结果打印到模板。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-05-18
          • 1970-01-01
          • 1970-01-01
          • 2013-07-28
          • 2016-04-23
          • 1970-01-01
          • 2023-04-09
          • 1970-01-01
          相关资源
          最近更新 更多