MasKのpermission denied.

新卒4年目WEBエンジニアの僕がぶつかった技術的な問題や発見のメモ

staticで宣言したメンバ変数にアクセスする方法

#hogeクラス

public function getHoge() {
  $brothers = ['taro', 'jiro', 'saburo'];
  // 処理
}

みたいな書き方をしていたら、先輩に「固定値なんで、フィールドにstaticで定義した方が都度インスタンス生成しなくてよいよ」と言われたので、

#hogeクラス
private static brothers = ['taro', 'jiro', 'saburo'];

public function getHoge() {
  $brothers = self::brothers;
  // 処理
}

みたいに書いたら、
Undefined class constant 'brothers'

ってエラー出たので、調べたらstaticで宣言したメンバ変数にアクセスするには
self::brothersではなくてself::$brothers にしないといけないんですね。

参考
PHPのクラスのアロー演算子と::演算子 - wiki - PCスキルの小技・忘却防止メモ