繁体   English   中英

将smarty布尔值转换为人类可读值。('是'/'否'或'真'/'假')

[英]Transform smarty Boolean value to human readable value.('Yes'/'No' or 'True'/'False')

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

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

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

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

您的Smarty代码应如下所示:

{if is_bool($val2.$value_index)}
  {$val2.$value_index|var_export:true}
{/if}

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

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

怎么样:

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

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

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

我用谷歌搜索速记,如果没有,这篇文章最初来了。 以防万一有人需要速记:

{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}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM