ホームページ >バックエンド開発 >PHPの問題 >phpのアクセス制御文字とは何ですか?

phpのアクセス制御文字とは何ですか?

青灯夜游
青灯夜游オリジナル
2021-07-15 16:11:102405ブラウズ

php のアクセス制御シンボルは次のとおりです: 1. public、どこからでもアクセスできるようにプロパティまたはメソッドを設定します; 2. private、独自のクラスまたはオブジェクトによってのみアクセスできるようにプロパティまたはメソッドを設定します; 3. Protected 、そのクラスまたはその子孫がアクセスできるようにプロパティまたはメソッドを設定します。

phpのアクセス制御文字とは何ですか?

#このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

アクセス制御修飾子リスト

アクセス修飾子意味パブリックどこからでもアクセスできるようにプロパティまたはメソッドを設定しますPrivate独自のクラスまたはオブジェクトからのみアクセスできるようにプロパティまたはメソッドを設定しますProtectedプロパティまたはメソッドを、そのクラスまたはその子孫からアクセスできるように設定します

public

パブリック プロパティとメソッドにはどこからでもアクセスできます。

<?PHP
class Book {
        public $Name;
        public function say() {
                print "PHP!\n";
        }
}
class PythonBook extends Book {
        public function say() {
                print "Python!\n";
        }
}
$aBook = new PythonBook;
$aBook->Name = "Python";
print $aBook->Name;
?>

デフォルトでは、すべてのクラス メソッドはパブリックです。

上記のコードは次の結果を生成します。

phpのアクセス制御文字とは何ですか?

#private

プライベート プロパティには、独自のクラス内でのみアクセスできます。

<?PHP
class Book {
        private $Name;
        private $NameTag;
        public function setName($NewName) {
                // etc
        }
}
?>

サブクラスはプライベートの親メソッドおよびプロパティにアクセスできません。これを行う場合は、protected キーワードが必要です。

Protected

保護されたプロパティとメソッドは、独自のクラスとサブクラス内でアクセスできます。次のコードを考えてみましょう:

<?PHP
class Book {
        public $Name;
        protected function getName() {
                return $this->Name;
        }
}
class Poodle extends Book {
        public function say() {
                print ""Book", says " . $this->getName();
        }
}
$aBook = new Poodle;
$aBook->Name = "PHP";
$aBook->say();
?>

上記のコードは次の結果を生成します。

phpのアクセス制御文字とは何ですか?

以下のコードは、プライベート メンバーを使用して情報を非表示にする方法を示しています。

<?php
  class Widget
  {
    private $name;
    private $price;
    private $id;
    public function __construct($name, $price)
    {
      $this->name = $name;
      $this->price = floatval($price);
      $this->id = uniqid();
    }
    //checks if two widgets are the same
    public function equals($widget)
    {
      return(($this->name == $widget->name) AND
       ($this->price == $widget->price));
    }
  }
  $w1 = new Widget("Cog", 5.00);
  $w2 = new Widget("Cog", 5.00);
  $w3 = new Widget("Gear", 7.00);
  //TRUE
  if($w1->equals($w2))
  {
    print("w1 and w2 are the same<br>\n");
  }
  //FALSE
  if($w1->equals($w3))
  {
    print("w1 and w3 are the same<br>\n");
  }
  //FALSE, == includes id in comparison
  if($w1 == $w2)
  {
    print("w1 and w2 are the same<br>\n");
  }
?>

上記のコードは次の結果を生成します。

phpのアクセス制御文字とは何ですか? 推奨学習: 「

PHP ビデオ チュートリアル

以上がphpのアクセス制御文字とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。