0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PHPのクラスメンバへのアクセス修飾子【個人的なお勉強アウトプット】

Last updated at Posted at 2022-04-11

引用記事

PHPも他のプログラムと同じく、アクセス修飾子を使える。
public、protected、private。
上記いずれかをプロパティやメソッド、定数に指定することでアクセス権を定義することができる。

アクセス権の種類

public

クラスのメンバ(プロパティ、メソッド、定数)はどこからでもアクセスが可能。
親子関係だろうが、外部クラスからだろうが。

protected

protectedで宣言されたクラスのメンバ、そのクラス自身と、親子関係にあるクラスのみアクセスが可能。外部クラスからはアクセスできない。

private

praivate宣言されたクラスのメンバは、そのクラス自身のみがアクセス可能

アクセス権の決め方

アクセス権の範囲が広ければ広いほど便利に見えるが、影響力の大きさから改変がしにくくなる不便さがあり、余計なアクセス権は想定外の場所の不具合を生む原因にもなりかねない。そのため、できるだけ狭い範囲で作れると良い。

基本はprivateで、privateをベースとして必要な文だけ広げていく。
継承先、あるいは継承もとで呼び出したり上書きしたい場合はprotected。
そのクラスとは関係ない外部からアクセスしたい場合はpublic。

privateの注意点として、本来そのクラスの責務でないものをかけてしまうことがある。
privateメソッドのテストをしたい、他のクラスにも似たようなメソッドがあると感じたら、別のクラスのpublicメソッドとしたほうがよいかもしれない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?