引用記事
PHPも他のプログラムと同じく、アクセス修飾子を使える。
public、protected、private。
上記いずれかをプロパティやメソッド、定数に指定することでアクセス権を定義することができる。
アクセス権の種類
public
クラスのメンバ(プロパティ、メソッド、定数)はどこからでもアクセスが可能。
親子関係だろうが、外部クラスからだろうが。
protected
protectedで宣言されたクラスのメンバ、そのクラス自身と、親子関係にあるクラスのみアクセスが可能。外部クラスからはアクセスできない。
private
praivate宣言されたクラスのメンバは、そのクラス自身のみがアクセス可能
アクセス権の決め方
アクセス権の範囲が広ければ広いほど便利に見えるが、影響力の大きさから改変がしにくくなる不便さがあり、余計なアクセス権は想定外の場所の不具合を生む原因にもなりかねない。そのため、できるだけ狭い範囲で作れると良い。
基本はprivateで、privateをベースとして必要な文だけ広げていく。
継承先、あるいは継承もとで呼び出したり上書きしたい場合はprotected。
そのクラスとは関係ない外部からアクセスしたい場合はpublic。
privateの注意点として、本来そのクラスの責務でないものをかけてしまうことがある。
privateメソッドのテストをしたい、他のクラスにも似たようなメソッドがあると感じたら、別のクラスのpublicメソッドとしたほうがよいかもしれない。