我正在使用Smarty生成一些表,并且我一度打印出从php文件传递的变量值。问题是这些变量中的一些是布尔值,它们呈现为“1”或“”。这是我尝试将这些布尔值转换为人类可读的格式。这是行不通的。如何检查变量是否为布尔值?
{if $val2.$value_index === true}Yes
{else if $val2.$value_index === false}No
{else}{$val2.$value_index->value}{/if}
答案 0 :(得分:3)
我对此并不熟悉,但看起来应该是:
{if $val2.$value_index->value === true}Yes
{elseif $val2.$value_index->value === false}No
{else}{$val2.$value_index->value}{/if}
答案 1 :(得分:3)
使用PHP var_export()函数作为布尔变量的smarty修饰符。 将第二个参数设置为true,因此var_export()返回变量表示而不是输出它。
要检查您的变量是否为布尔值,请使用PHP is_bool()函数。
您的Smarty代码应如下所示:
{if is_bool($val2.$value_index)}
{$val2.$value_index|var_export:true}
{/if}
答案 2 :(得分:1)
怎么样:
{if $va2.$value_index}Yes
{else}No
{/if}
问题是这些变量中的一些是布尔值,它们呈现为“1”或“”。
1
和""
不是布尔值,它们是相应的整数和字符串。
答案 3 :(得分:0)
我用谷歌搜索了是否还有其他速记,而该帖子是第一篇。以防万一有人需要简写:
{if $val2.$value_index === true}Yes
{else if $val2.$value_index === false}No
{else}{$val2.$value_index->value}{/if}
收件人:
{($val2.$value_index->value) ? 'yes' : (!$val2.$value_index->value) ? 'no' : $val2.$value_index->value}