プロパティまたはメソッドに対するアクセス制御は、先頭にキーワード public、protected、または private を追加することで実現されます。
public で定義されたクラス メンバーはどこからでもアクセスできます。 protected で定義されたクラス メンバーは、そのメンバーが配置されているクラスのサブクラスおよび親クラスからもアクセスできます (もちろん、メンバーが配置されているクラスからもアクセスできます)。アクセスされる) ; private で定義されたクラス メンバーには、そのメンバーが配置されているクラスからのみアクセスできます。 PHP5では以下の3つのアクセス修飾子がサポートされています。 (1) 公開。この修飾子はデフォルトであり、プロパティまたはメソッドにアクセス修飾子が指定されていない場合、パブリックになります。パブリック プロパティまたはパブリック メソッドには、クラスの内部と外部の両方でアクセスできます。 (2)プライベート。この修飾子は、マークされたプロパティまたはメソッドがクラス内でのみアクセスできることを示します。 には継承できません!(3) 保護されました。この修飾子は、マークされたプロパティまたはメソッドがクラス内でのみアクセスできることを示します。継承可能
Private は同じクラスからアクセスできますが、サブクラスも外部クラスもアクセスできません。 protected は同じクラスとサブクラスからアクセスできますが、外部クラスはアクセスできません。 クラスメンバーのアクセス制御クラスメンバーはキーワードpublic、protected、またはprivateを使用して定義する必要があります<?php class MyClass { public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private'; function printHello() { echo $this->public; echo $this->protected; echo $this->private; } } $obj = new MyClass(); echo $obj->public; // 这行能被正常执行 echo $obj->protected; // 这行会产生一个致命错误 echo $obj->private; // 这行也会产生一个致命错误 $obj->printHello(); // 输出 Public、Protected 和 Private class MyClass2 extends MyClass { // 可以对 public 和 protected 进行重定义,但 private 而不能 protected $protected = 'Protected2'; function printHello() { echo $this->public; echo $this->protected; echo $this->private; } } $obj2 = new MyClass2(); echo $obj->public; // 这行能被正常执行 echo $obj2->private; // 未定义 private echo $obj2->protected; // 这行会产生一个致命错误 $obj2->printHello(); // 输出 Public、Protected2,但不会输出 Private class Bar { public function test() { $this->testPrivate(); $this->testPublic(); } public function testPublic() { echo "Bar::testPublic\n"; } private function testPrivate() { echo "Bar::testPrivate\n"; } } class Foo extends Bar { public function testPublic() { echo "Foo::testPublic\n"; } private function testPrivate() { echo "Foo::testPrivate\n"; } } $myFoo = new foo(); $myFoo->test(); // Bar::testPrivate // Foo::testPublic ?>メソッドのアクセス制御クラス内のメソッドはキーワードpublic、protected、またはprivateを使用する必要があります。これらのキーワードが設定されていない場合、メソッドはデフォルトの public に設定されます。
りー
以上がphp: クラス内のメンバーのアクセス制御の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。