• ベストアンサー

$a[x]と$a['x']

連想配列の$a[x]と$a['x']の書式のどちらかにメリットはありますか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#31077
noname#31077
回答No.2

先に結論を言うと、定数宣言 define して x を使うほうが便利です。 xを定数定義しているとき… $a[x] = "data1"; $b[x] = "data2"; としていて、x の定数部分を変えたいと思ったときは define の部分だけ修正すればいい事になります。 メリット:拡張性/保守性に富む。 デメリット:定数宣言はきちんと定数文字を考えないといけない。(x だけだなんてもってのほかですよ。)      :定数は管理しないといけない。 'x'としているとき… $a['x'] = "data1"; $b['x'] = "data2"; x という文字列を変えたいときは'x'の部分すべてを変更しないといけないです。 沢山使っていたら結構めんどくさいし間違えるリスクがある作業となります。 メリット:安易にコードが書ける。 デメリット:拡張性/保守性に劣る。      :修正の場合のリスクがある。 以上です。一つのクラス内、一つのスクリプトファイルだけの場合は 'x' の方が使い勝手がいいですが、 そうでないならきちんと定数宣言する事をお勧めします。

その他の回答 (1)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

メリットというよりxが定数でないなら$a[x]という書き方は間違いです。 Notice エラーになります。 $a['x'] = 'x'; $a['y'] = 'y'; echo $a[x]; define ('x', 'y'); echo $a[x]; で比較してみてください。

関連するQ&A