LoginSignup
0
0

More than 1 year has passed since last update.

カプセル化をphpで説明してみた

Posted at

1.カプセル化とは?
外部からデータや手続きの詳細を隠蔽すること、アクセスできないようにすることを「カプセル化」と言います。
PHPでは、privateなどを用いてクラスの外から変数やメソッドにアクセスできないようにすることで、「カプセル化」を実現しています。
以下で実際のコードを見てみましょう。

2.カプセル化がされていないPHPのコード

//カプセル化されていないコード
class hoge {
  public function pub_func() {
    echo "public";
  }
}
$obj = new hoge();
$obj->pub_func();

//出力結果
public

上記では、修飾子publicでメソッドを定義しています。
この時はclassの外でメソッドを呼び出しても、メソッドが実行されることが
わかります。
クラスの外からメソッドにアクセスできることから、このコードはカプセル化がされていないことがわかります。

3.カプセル化がされているPHPのコード

//カプセル化されているコード
class hoge {
  private function pri_func() {
    echo "private";
  }
}
$obj = new hoge();
$obj->pri_func();

//出力結果
PHP Fatal error:  Uncaught Error: Call to private method hoge::pri_func() from global scope

上記では、修飾子privateでメソッドを定義しています。
この時はclassの外でメソッドを呼び出しても、「Call to private method」というエラーになってしまいます。
このようにprivateで定義されたメソッドに、クラス外でアクセスすることはできません。
これではクラスの外からアクセスできない状態なため、「カプセル化」されているといえます。

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