이 기사는 PHP의 속성 또는 메소드 액세스 제어에 대한 소개입니다(코드 예제). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다. 돕다.
PHP의 속성이나 메서드에 대한 액세스 제어는 public(공개), protected(보호됨) 또는 키워드를 추가하여 수행됩니다. 프라이빗(프라이빗)을 달성합니다. public으로 정의된 클래스 멤버는 어디에서나 액세스할 수 있으며, protected로 정의된 클래스 멤버는 자체 클래스, 해당 하위 클래스 및 상위 클래스에서 액세스할 수 있습니다. private으로 정의된 클래스 멤버는 해당 멤버가 정의된 클래스에서만 액세스할 수 있습니다.
클래스 속성은 공개, 보호 또는 비공개로 정의되어야 합니다. var로 정의하면 공개로 간주됩니다. 하위 클래스는 기본 클래스의 공개 및 보호 속성 값을 수정할 수 있습니다.
<?php class A{ var $a="a"; protected $b="b"; private $c="c"; function printVar(){ echo $this->a.";".$this->b.";".$this->c.";"."\n"; } } class B extends A{ public $a="aa"; protected $b="bb"; private $c="cc"; } $a=new A(); $a->printVar(); $b=new B(); $b->printVar(); ?>
클래스는 공개, 보호 또는 비공개로 정의되어야 합니다. 지정하지 않으면 공개로 간주됩니다. 하위 클래스는 기본 클래스의 공개 및 보호 기능을 재정의할 수 있습니다.
<?php class A{ public function fa(){ echo "A->fa\n"; } protected function fb(){ echo "A->fb\n"; } private function fc(){ echo "A->fc\n"; } function showFoo(){ $this->fa(); $this->fb(); $this->fc(); } } class B extends A{ function fa(){ echo "B->fa\n"; } protected function fb(){ echo "B->fb\n"; } private function fc(){ echo "B->fc\n"; } } $a=new A(); $a->showFoo(); $b=new B(); $b->showFoo(); ?>
동일한 클래스의 객체는 동일한 인스턴스가 아니더라도 서로의 private 및 protected 멤버에 액세스할 수 있습니다. 이러한 객체의 내부 구현 세부 정보가 알려져 있기 때문입니다.
<?php class A { private $a; public function __construct($a) { $this->a = $a; } private function fa() { echo 'private method fa.'; } public function foo(A $other,$v) { $other->a = $v; var_dump($other->a); $other->fa(); } } $a = new A('a'); $aa=new A('aa'); $a->foo($aa,'newA'); ?>
위 내용은 PHP의 속성 또는 메소드에 대한 액세스 제어 소개(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!