目的
- PHPのアクセス修飾子をなんとなくで使用していたのでこの機会にちゃんと整理する
記事を書いた経緯(自分用)
- LaravelでDI(依存性の注入)をしている時になんとなくコントローラークラスの最初の方で
private $userService;
と記載してコントローラークラスのプロパティを定義していた。 - ちゃんと意味を理解できておらず「とりあえずこういうふうに記載するとDIできる」と覚えていた。
-
private
がどのような意味を示しているかを整理してみる。
アクセス修飾子
private
ケース | アクセス可否 |
---|---|
同クラス内アクセス | ○ |
継承先でのアクセス | ✕ |
インスタンス化後のアクセス | ✕ |
protected
ケース | アクセス可否 |
---|---|
同クラス内アクセス | ○ |
継承先でのアクセス | ○ |
インスタンス化後のアクセス | ✕ |
public
ケース | アクセス可否 |
---|---|
同クラス内アクセス | ○ |
継承先でのアクセス | ○ |
インスタンス化後のアクセス | ○ |
-
public
だとどこからでもアクセスできるらしい。アクセス修飾子を指定しない場合自動的にpublic
になる。 - 指定しないなら