2008/10/10

[php]配列評価に、構造体を使う

今、Smartyを使っています。

その中で、ちょっと不思議だなーと思ったところがあるのでメモ。

仮に、以下の、ようなphpファイルがあるとします。

・・・(処理)・・・
$hoge = array("brother" => "弟" , "sister" => "姉");
・・・(処理)・・・
assign("foo",$hoge);
・・・(処理)・・・

で、変数fooををhtml側に埋め込むんだけど、その書き方が、

{$foo.brother}<br>
{$foo.sister}<br>

ってのはわかるんだけど、逆に、これだとバグになってしまうのがなんとも不思議

{$foo["brother"]}<br>
{$foo["sister"]}<br>

だって、上の表現って連想配列ってことでしょ。
ってことはアクセスの仕方には問題ないと思うんだけど。。。

調べてみると、確かに、2つ目はダメとのこと。

では連想配列の場合はどうか?
$array["key"] = 1;

という連想配列があった場合は

{$array["key"]}

と想像するかもしれませんが、答えは、

{$array.key}


via:Smarty徹底入門(3):assignした配列を読み込む

うーん、なんとも不思議。

0 コメント:

コメントを投稿