もちろん、これは間違いなく実現可能ですが、非常に複雑です。以下の著者が、smarty テンプレートで直接乱数を生成する方法に関するちょっとしたトリックを共有します。
ここで、smarty テンプレートで 125 ~ 324 の範囲の乱数を生成する必要があるとします。その場合、次のように記述できます:
コードは次のとおりです:
{math equation=rand(125,324)}
この方法で目標は達成できましたが、どうでしょうか?とても簡単ですね?実はここでは主にsmartyテンプレートのmath関数を使いますが、Smartyのmath関数の機能と使い方を簡単に説明します。
math を使用すると、テンプレート設計者はテンプレート内で数式演算を実行できます。任意の数値タイプの変数を式で使用でき、結果は math タグの位置に出力されます。式で使用される変数はパラメータとして渡されます。関数に指定すると、テンプレート変数または静的な値を指定できます。現在利用可能な演算子は、、、-、/、*、abs、ceil、cos、exp、floor、log、log10、max、min、pi、pow、 rand、round、sin、sqrt、srans、tan 数学関数の詳細については、PHP ドキュメントを参照してください。
特別な属性「assign」が指定されている場合、関数の出力値は直接出力されるのではなく、assign で指定されたテンプレート変数に代入されます。
ただし、PHP の eval() 関数を使用しているため、算術関数の実行効率は高くありません。算術演算は PHP で実行した方が効率的ですので、PHP で実行してください。可能な限り PHP の数学的演算を行い、結果をテンプレート変数に代入します。
smarty math
関数のデモ
コードは次のとおりです:
{* $height=4, $width=5 *} {math equation="x + y" x=$height y=$width}
出力結果: 9
コードは次のとおりです:
{* $row_height = 10, $row_width = 20, #col_p# = 2, assigned in template *} {math equation="height * width / pision" height=$row_height width=$row_width pision=#col_p#}
出力結果: 100
コードは次のとおりです:
{math equation="(( x + y ) / z )" x=2 y=10 z=2}
出力結果: 6
コードは次のとおりです:
{* you can supply a format parameter in sprintf format *} {math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}
出力結果: 9.44
関連する学習の推奨事項: PHP プログラミングの入門から熟練度まで
# #
以上がPHPテンプレートエンジンsmartyで乱数を生成する方法と演算関数を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。