PHPUtilプラグイン(その17・関数の実行)

PHPUtilプラグインでは、PHPの各種の関数を実行することもできます。

1.MTPHPFunctionタグ

関数を実行してその結果を出力するには、「MTPHPFunction」というテンプレートタグを使います。

<$mt:PHPFunction name="関数名" params="パラメータ1","パラメータ2",...,"パラメータn" straight="そのまま渡したいパラメータの番号"$>

「関数名」で、実行する関数の名前を指定します。
また、「パラメータ1」等で、関数に渡すパラメータを指定します。

何も指定しなければ、パラメータは文字列とみなします。
文字列ではないパラメータ(数値など)を渡したい場合、そのパラメータの番号をstraigntモディファイアで指定します。
複数のパラメータをそのまま渡す場合は、パラメータの番号をコンマで区切って指定します。
例えば、2番目と3番目のパラメータをそのまま渡す場合は、「straight="2,3"」と書きます。

例えば、PHPのrand関数を使って、1~10の整数の乱数を出力するには、以下のように書きます。
rand関数のパラメータは数値なので、straightモディファイアでパラメータをそのまま渡すようにしています。

<$mt:PHPFunction name="rand" params="1","10" straight="1,2"$>

なお、パラメータに変数を渡す場合は、「{$変数名}」のように書きます。
例えば、1つのパラメータに変数xを渡すなら、「params="{$x}","・・・"」のように書きます。
また、変数を渡す場合は、そのパラメータの番号はstraightモディファイアに指定しません。

2.結果を変数に代入する

関数の実行結果を直接に出力せず、変数に代入したい場合は、php_setvarモディファイアと組み合わせます。
例えば、先ほどのrand関数の例で、結果を変数numに代入するには、以下のように書きます。

<$mt:PHPFunction name="rand" params="1","10" straight="1,2" php_setvar="num"$>

3.関数自体に結果を出力する機能がある場合

print_r関数やvar_dump関数など、関数自体に結果を出力する機能がある場合は、「no_echo="1"」というモディファイアを付加します。
例えば、ハッシュuserの内容をprint_r関数でダンプしたい場合だと、以下のように書きます。

<$mt:PHPFunction name="print_r" params="{$user}" no_echo="1"$>

4.PHPUtilプラグイン関係の記事の一覧

PHPUtil関係のその他の記事は、以下のリンクから参照できます。