我用{foreach item=nav from=$navs}
{if $nav.name === $crumbname}
<li class="current"><a href="{$nav.url}">{$nav.name}</a></li>
{/if}
<li><a href="{$nav.url}">{$nav.name}</a></li>
{/foreach}没有任何效果。请问是否===使用不正确?
该如何使用?

解决方案 »

  1.   

    http://www.php100.com/manual/smarty/language.function.if.html
      

  2.   

    每次都重申一下,不使用smarty 是解决smarty 问题的最好方案,替代产品大把~
      

  3.   

    eq or neq 不就行了么?
      

  4.   

    为什么要恒等于,PHP是弱类型语言,设计的时候就不要出现这种问题
      

  5.   

    试试用 eq
    {if $nav.name eq $crumbname}sorry 有点代码洁癖,看不惯到现在还在用smarty 的。 我总觉得一个东西应该有相应的时代性,smarty 在开创数据与视图分离时做了很大的贡献,但确实,这东西也祸害了很多人, 就如此例,一个等于, 硬要折腾成 eq  ,何必呢,是不是来一个程序员,都要学习一下smarty 的这些东西。
    我再说个小例子[仅举例],遍历1至100 ,输出,并且其中是质数时标红,2的N次方时变绿,估计这会,不太熟悉的人,又要到处翻smarty 手册了。 真实项目中,碰到这种有一定的定制需求的事,也挺多的,N种框架都选择支持在视图程直接写 php 脚本了, 排得上号的例如 zf yii ci~ ,并且现在的小孩子门,学php 时,也不再去学smarty了。 所以,为了能更快的敏捷开发,及代码快速可读性高。建议丢弃smarty!