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()関数を、ブール変数の賢い修飾子として使用します。2 番目のパラメーターを 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 に答える