2014-09-05 59 views
1

我想比较值智者:Smarty的比较字符串

{if $needle == '1'} 
// Whatever 
{else} 
// .. 
{/if} 

$needle的值为 “0”(串)。通过致电该网站,我从未进入“其他”案例。有人可以告诉我为什么?

是我迄今为止尝试:

$needle到INT演员(由$needle|intval(int) $needle$needle|string_format:"%d") 使用===eq操盘==

回答

0

看来你做了错事。

如果在PHP中我有:

$smarty->assign('needle', '0'); // needle is string 0 

和Smarty的我:

{if $needle == '1'} 
    // Whatever 
{else} 
    // .. 
{/if} 

这是工作,因为它应该:

// .. 

正在显示。

如果这个简单的代码不会为你工作,你应该添加以下代码:

{$needle|var_dump} 

if之前,这将显示你的价值和类型。

你还应该确保这个Smarty模板文件是完全执行的,因为如果它不是这样的话那么你不会去其他条件。