0

これ:

{1234|count_characters}

出力:

4

良い。でもこれは:

{if 12345|count_characters == 4}
    it's 4
{/if}

出力しますit's 4。上記の if ステートメントは、明らかに false と評価されるはずです。常に true と評価されるのはなぜですか?

count_characterssmarty 修飾子は、単純に文字列または数値の文字数を示します。

http://www.smarty.net/docsv2/en/language.modifier.count.characters.tpl

4

3 に答える 3

0

{x|y}構文はecho y(x)....のスマートなショートコードであるため、echo重要な場所

ただし、{if y|x ==4 }ビット単位のor( |)を実行することxと同等ですy( 12345|count_charactersis true であるため、12345is true です。count_characters定数としてテストされ、定数が存在しない場合は文字列リテラルとしてテストされますが、通知がスローされます)、結果を比較しますその操作に対して4(ルーズタイピングで true == 4)、true の場合など

于 2014-10-31T19:12:02.820 に答える