📖

phpの「->」と「[]」の違い

2024/03/31に公開

発端

$apes = array(
    'monkey'     => 'おさる',
    'chimpanzee' => 'チンパン',
);

phpで上記のような連想配列でvalueにアクセスしようとして

echo $apes -> monkey;

と書いたらエラーになった。
正しくは

echo $apes['monkey']

と記述する

原因

phpのアロー演算子をjsのドット記法と似たようなものだと思っていた

jsでは
①オブジェクトリテラルで定義したプロパティ
②クラスのオブジェクトインスタンスのプロパティ
①②ともにドット記法でプロパティにアクセスできるのでphpでも同じようなものだと思っていた。

phpの場合
①はブラケット記法

$apes['monkey']

②はアロー演算子

$apes -> monkey

でそれぞれアクセスする。

Discussion