PHPでオブジェクト指向プログラミングを行うときに見かける2つの演算子についてどのような違いがあるのか.
アロー(->)演算子を使う場合
インスタンスプロパティとインスタントメソッドにアクセスする
スコープ定義(::)演算子を使う場合
静的プロパティと静的メソッドにアクセスするのかです。
例を挙げておきます。
class Human (){ public static $humanNumber; private $name; private $age; public static function hello(){ return "Hello"; } public function getName(){ return $name; } ... }
上のようなHumanクラスがあるとします。
$taro = new Human(); $taro->getName(); $hello = Human::hello(); $humanNumber = Human::$humanNumber;
こんな感じで使い分けるようです。 クラスを参照しなくても->と::を見れば静的かどうか分かるという良い点もあります。