properties 또는 메소드에 대한 액세스 제어는 앞에 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 정의 키워드를 사용해야 합니다. 이러한 키워드가 설정되지 않은 경우 메소드는 기본 공개로 설정됩니다.
아아아아위 내용은 php: 클래스 멤버에 대한 액세스 제어의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!