#このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューターphp のアクセス制御シンボルは次のとおりです: 1. public、どこからでもアクセスできるようにプロパティまたはメソッドを設定します; 2. private、独自のクラスまたはオブジェクトによってのみアクセスできるようにプロパティまたはメソッドを設定します; 3. 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; ?>デフォルトでは、すべてのクラス メソッドはパブリックです。 上記のコードは次の結果を生成します。 #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 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 中国語 Web サイトの他の関連記事を参照してください。