2

我正在使用 Smarty 生成一些表,并且在某一时刻我正在打印出从 php 文件传递​​的变量值。问题是其中一些变量是布尔值,它们呈现为“1”或“”。这是我尝试将这些布尔值转换为人类可读格式的尝试。这没用。如何检查变量是否为布尔值?

{if $val2.$value_index === true}Yes
{else if $val2.$value_index === false}No
{else}{$val2.$value_index->value}{/if}
4

4 回答 4

4

使用 PHP var_export()函数作为布尔变量的 smarty 修饰符。将第二个参数设置为 true,因此var_export()返回变量表示而不是输出它。

要检查您的变量是否为布尔值,请使用 PHP is_bool()函数。

您的 Smarty 代码应如下所示:

{if is_bool($val2.$value_index)}
  {$val2.$value_index|var_export:true}
{/if}
于 2013-12-16T15:06:57.150 回答
3

我对此并不完全熟悉,但看起来应该是:

{if $val2.$value_index->value === true}Yes
{elseif $val2.$value_index->value === false}No
{else}{$val2.$value_index->value}{/if}
于 2012-12-03T22:15:46.240 回答
1

怎么样:

{if $va2.$value_index}Yes
{else}No
{/if}

问题是其中一些变量是布尔值,它们呈现为“1”或“”。

1并且""不是布尔值,它们是相应的整数和字符串。

于 2012-12-03T22:07:01.997 回答
0

我用谷歌搜索了 if else 的简写,这篇文章最初是出现的。以防万一有人需要以下简称:

{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}
于 2019-02-23T19:27:22.000 回答