スコープ定義演算子の挙動
前々回の記事で「初学者を悩ませるPHPの演算子と仲良くなろう」を書きました。
このときはスコープ定義演算子である::
はインスタンス化しなくてもメソッドやプロパティにアクセスできると思っていたのですが、検証してみたところ正確にはインスタンス化していない static メソッド
にはアクセスできました。
- インスタンス化していないプロパティ
- インスタンス化していないメソッド
- インスタンス化しているプロパティ
- インスタンス化しているメソッド
- インスタンス化していない static プロパティ
- インスタンス化していない static メソッド
- インスタンス化している static プロパティ
- インスタンス化している static プロパティ
アクセスする場合、上記のパターンがあります。現在はこれらに頭を悩ませているところです。これに加えて public, private, protect があるのでそれぞれどういうときに、どう使うのかを知っておかなくてはならないみたいです。さらにアロー演算子である->
が複数出てくるa->b->c
という書き方にも遭遇したので混乱しています。わからないことだらけです。
動画等では「このメソッドは static で十分なので static をつけます」と説明があるのですが「なぜこのメソッドは static で十分なのか」という説明がないので、プログラミングを理解している人には初学者の気持ちはわからないんだろうなと、ふと感じました。人に教えるというのは難しいものですね。
ここ数日は勉強ができなかったので月曜日からは本腰を入れたいです。