【PHP入門】アクセス権

  • 2019.12.18
  • 2022.05.04
  • PHP
【PHP入門】アクセス権

PHPのアクセス権ってなに?
PHPのアクセス権について教えてほしい!

こういったPHPの勉強を始めたばかりの方向けに、PHPのアクセス権についての疑問を解決していきます!
最後まで読めば、PHPのアクセス権について理解できるようになります!
本日学ぶ内容は以下の3つです。

  • public
  • private
  • protected

前回の記事をまだ見ていない方はこちらをご覧ください。

では早速やっていきましょう!

アクセス権

アクセス権とは

アクセス権とは、その名の通りアクセスする権利を持っているかどうかと言うことになります。
ここでは前回の「クラスとインスタンス」のアクセス権について見ていきます。

アクセス権には「public」「private」「protected」の3つの種類があり、この3つのどれを指定するかによってアクセスの有無が変わってきます。
ではこの3つについて、詳しく見ていきましょう。

public

publicは、「どこからでもアクセス可能」という意味を持ちます。
基本的には「public」を使います。書き方は下のように書きます。

<?php
//親クラス
class Food {
      public $name;
      public $price;

      public function much(){
            echo $this->name . "は" . $this->price . "円です " ;
      }
}
// インスタンス
$apple = new Food();
$apple->name = "りんご";
$apple->price = 100;
$apple->much();

?>

private

次にprivateは、「そのクラス内からのみアクセス可能」と言う意味を持ちます。
下の例でいうと、Foodの中でのみアクセス可能ということになります。
したがってインスタンスで呼び出すとエラーになります。

<?php
//親クラス
class Food {
      private $name;
      private $price;

      public function much(){
            echo $this->name . "は" . $this->price . "円です " ;
      }
}
// インスタンス
$apple = new Food();
$apple->name = "りんご";
$apple->price = 100;
$apple->much();

?>

protected

protectedは「そのクラスと、子クラス内からのみアクセス可能」という意味になります。
下の例でいうと、FoodとFood2の中でのみアクセス可能ということになり、インスタンスで呼び出すとエラーになります。
また「private」で子クラスにアクセスすることもできませんので、注意です。

<?php
//親クラス
class Food {
      protected $name;
      protected $price;

      public function much(){
            echo $this->name . "は" . $this->price . "円です " ;
      }
}

//子クラス
class Food2 extends Food {
      public function tax(){
            echo "税込" . $this->price * 1.08 . "円です";
      }
}

// インスタンス
$apple = new Food();
$apple->name = "りんご";
$apple->price = 100;
$apple->much();
$apple2 = new Food2(); //新しく定義
$apple2->price = 100; //新しく定義
$apple2 ->tax(); //新しく関数を呼び出す

?>

まとめ

アクセス制限は、安全なプログラムを書く際に必要になってきますので、始めのうちは慣れないと思いますが、しっかりと覚えていきましょう。

では本日は以上になります。