Simplateを使っていて配列の要素にアクセスできず少しハマりました。
PHPの配列のアクセス
配列の要素へのアクセスには、配列でも連想配列でもarray[key] 構文を使います。
Php.php
//配列
$array = [];
//連想配列
$associative_array = [];
for ($i = 0; $i < 10; $i++) {
$array[] = $i * 1000;
$associative_array[$i] = $i * 1000;
}
// どちらもアクセスできます
var_dump($array[0]);
var_dump($associative_array[0]);
Simplateの配列と連想配列のアクセス
Simplateでは、配列と連想配列で要素のアクセスの仕方に違いがあります。
配列のアクセス
配列に対しての要素のアクセス
array.tpl
<{* どちらもアクセスできます。 *}>
<{$array[1]}>
<{$array.1}>
連想配列のアクセス
連想配列に対し要素のアクセス
associative_array.tpl
<{* こちらはアクセスできません。勝手にできると思い込んでいて嵌まった。*}>
<{$associative_array[1]}>
<{* こちらはアクセスできます。 *}>
<{$associative_array.1}>
まとめ
- Simplateでは、連想配列の要素へのアクセスの方法が、PHPと違うので注意が必要。
- Simplateの連想配列の要素へのアクセスは
$associative_array.key
のようにする。