PHP

PHPのアクセス修飾子: public, private, protected の使い分け


はじめに

アクセス修飾子が必要な理由として第一に保守の容易さに挙げられます.

オブジェクト志向のカプセル化を想像するとわかりやすいかもしれません.

チーム開発をしていて自分がクラスを作る際は基本的に, 他の人がそのクラスを使いやすいように、使って良い機能だけ公開し、使ってほしくない機能は隠します。

このようなシステムを作るときこのアクセス修飾子が役に立ちます.


アクセス修飾子

アクセス修飾子はpublic, protected, private の三つがあり, 下に行くほどアクセスできる範囲が狭くなります.

アクセス修飾子
意味

public
外部から参照できる

protected
変数、関数を宣言したクラスと継承されたクラスから参照できる

private
変数、関数を宣言したクラス内のみ参照できる

下記は説明のために作成したものです.

変数名にpublicなどをつけるという愚かな行為をしているため

コピペはしないでください



class Parent{

//$public, #protected, $private全てアクセスできる
public $public;
protected $protected;
private $private;

//privateで読み込みだけしていい場合このように公開する
public function getPrivate{
return $this->pra;
}
}


Mainを継承


子クラス

class Child extends Parent{

// $privateはアクセスできない
// $public, $protectedはアクセスできる
}


クラス外

//$private, $protected はアクセスできない

//$publicはアクセスできる


参照リンク

PHPでクラスを使う

TomoBlogの技術書