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