こんにちは、さち です。
先日、ウェブサイトの作成で久しぶりに「PHP」を使ったのですが、「連想配列」の書き方が JavaScript と違い、少し手間取ってしまいました。
しばらく PHP を使わないでいると同じミスをしそうなので、備忘録としてこの記事を残しておきます。
「連想配列」の書き方
$grade = [ 'kozue'=> '3rd', 'kaho' => '2nd', 'ginko'=> '1st' ]; // PHP 5.4未満はこちらの書き方で $grade = array( 'kozue'=> '3rd', 'kaho' => '2nd', 'ginko'=> '1st' );
「JavaScript」と形式が似ていますが微妙に違います。注意しましょう。
JavaScript との違い
- リテラルに使う記号は
{
}
ではなく[
]
- 「キー」と「値」の間に使う記号は
:
ではなく=>
「配列」の書き方
$unit = [ 'Cerise Bouquet', 'DOLLCHESTRA', 'Mira-Cra Park!' ]; // PHP 5.4未満はこちらの書き方で $unit = array( 'Cerise Bouquet', 'DOLLCHESTRA', 'Mira-Cra Park!' );
「配列」は JavaScript と同じ形式が使えます。
「連想配列」の方だけ形式が違うことが、間違いやすい原因になっている気がします……。
【おまけ】 混ぜて使える
PHP では「配列」と「連想配列」を同じリテラルで書けるため、一つの変数の中に「配列」と「連想配列」を混ぜて記述できます。
$mixshake = [ 'Cerise Bouquet', 'kozue'=> '3rd', 'kaho' => '2nd', 'ginko'=> '1st' ]; echo $mixshake[0];// Cerise Bouquet echo $mixshake['kozue'];// 3rd
ただ、混在させることにメリットを感じないですし、分かりにくくなってミスの原因になりそうです。私は使わないかな……。
コメント