2

カスタムのsmartyphpプラグインメソッドを作成するときに、パラメータの1つとして多次元配列を渡すことは可能ですか?

おそらく次のようなもの

{function title="Hi" options=array('opt1', 'opt2', 'opt3')}

上記はシーケンシャル配列です。当然、連想配列のサポートも同様に壮大です。

私は何時間もドキュメントとフォーラムを精査してきましたが、残念ながら、私が見つけたものはすべて「いいえ」と言っていますが、5歳(またはそれ以上)でもあります

ありがとう。

4

1 に答える 1

1

Smarty3 ではそれが可能です。

この例では、array() を [] に置き換えるPHP5.4 の短い配列構文を使用しています。次のように使用してください。

{function title="Hi" options=['opt1' => ['one' => 1], 'opt2' => ['two' => 2] ]}

別の例: 変数に代入し、それをループします。

{$multidimension_array = ['opt1' => ['one' => 1], 'opt2' => ['two' => 2] ]}

{foreach $multidimension_array as $ak => $subarray}
    <p>Section "{$ak}":</p>
    <ol>
    {foreach $subarray as $k => $v}
        <li>{$k}: {$v}</li>
    {/foreach}
    </ol>
{/foreach}

また、この構文が例示されているSmarty3 概要ページも参照してください。

注: PHP 5.4 は必要ありません。この構文は Smarty レベルでエミュレートされます。

于 2012-04-17T09:31:00.910 に答える