smartyの連想配列で、キーに2バイト文字 - PHPプロ!Q&A掲示板

3479

  • 0P

smartyの連想配列で、キーに2バイト文字

質問日時 / 2011年11月14日 14:07    回答数 / 2件

Questioner:  dryjumper  このエントリーをはてなブックマークに追加 

キーワード / smarty    連想配列    2バイト文字   

smartyのバージョンは、3.1.4です。

smarty講座の第2回を見ながらやっていたのですが。

phpファイル
  1. $smarty->assign( array( 'aa' => "あか") );
  2.  
  3. $test = array( 'bb' => "きいろ", 'cc' => "しろ", "みどり", "テスト" => "くろ");
  4. $smarty->assign( 'dis' , $test);

tplファイル
  1. 「{$aa}、{$dis.bb}、{$dis['cc']}、{$dis[0]}、{$dis["テスト"]}」

講座では
>連想配列の場合はPHPと書き方が異なります。
>PHPでは$arr['key']のように書きますが、
>Smartyテンプレートでは{$arr.key}のように、ドット(.)のあとにキーを記述します。
>PHPの記述方法と混乱しないように気をつけてください。

と書かれていますけども。
上記phpを実行すると、「あか、きいろ、しろ、みどり、くろ」と全て表示されます。

この「{$dis["テスト"]}」は、表示されるだけで、使わない方が良いのでしょうか?

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01NurseAngelhttp://www.smarty.net/docsv2/ja/language.variables
 ┗A01-1dryjumperなるほど。 何か設定ミスしたのかと思っていたので、

回答一覧

並び替え:

A01 満足
answererNurseAngel [11月16日 01:25]

http://www.smarty.net/docsv2/ja/language.variables.tpl#language.variables.array.indexes
> 配列に対してインデックスでアクセスすることもできます。 これは PHP 本来の構文と同じです。 

Smartyでは配列の要素に対し、.区切り以外にPHPの配列形式でもアクセスできます。

まあ、何れにせよ配列のキーに全角はやめておいたほうが無難ではないかと思いますが。

この意見に回答する

ツリーへ TOPへ

A01-1
replyerdryjumper [11月16日 17:07]

なるほど。
何か設定ミスしたのかと思っていたので、安心しました。

ありがとうございました。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
array_mergeの再帰処理の動作について
 このエントリーをはてなブックマークに追加 
A
>1個になったとき$leftを返しますが、 >このとき、最終的な$leftはnullになるかと思います。 いいえ、最後は「渡された配列をそのまま」返します。要素が2以上あるときとの違いは(並べ替えずに戻るので...

>>続きを読む

再帰関数は最初の内は混乱しますが、非常に上手く使える場面もいずれ出てきます。これを機会に学んでいけるといいですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)