public: 공용 특성 또는 메서드
는 self::var 또는 self::method를 통해 하위 클래스에서 호출할 수 있습니다. 상위 클래스의 메서드는 parent::method를 통해 호출할 수 있지만 공용 속성은 호출할 수 없습니다. 인스턴스
protected: Protected type
하위 클래스에서 self::var 또는 self::method를 통해 호출 가능, parent:: 메소드를 통해 호출 가능 상위 클래스의 메소드를 호출하려면
인스턴스에서 $obj->var는 보호 유형 메소드 또는 속성을 호출하는 데 사용할 수 없습니다
private: Private 유형
이 유형의 속성 또는 메소드는 이 클래스에서만 사용할 수 있습니다. . 이 클래스, 하위 클래스 또는 하위 클래스 인스턴스
2. self와 parent의 차이점a) 이 두 개체는 하위 클래스에서 일반적으로 사용됩니다. 주요 차이점은 self가 상위 클래스에서 공개 또는 보호 속성을 호출할 수 있지만 부모는
b).self를 호출할 수 없다는 점입니다.:: 현재 클래스의
static 멤버(메서드 및 속성)를 나타냅니다. ,$this는 현재 객체를 나타냅니다
<?php class BaseClass { public $public = 'public'; private $private = 'private'; protected $protected = 'protected'; function construct(){ } function print_var(){ print $this->public;echo '<br />'; print $this->private; echo '<br />'; print $this->protected; echo '<br />'; } } class Subclass extends BaseClass { // public $public = 'public2'; protected $protected ='protected2'; function construct(){ echo $this->protected;//可以访问,因为类中定义为受保护的,所以在本类或子类中可以,子类中还可以重复付值 echo '<br />'; echo $this->private;//error 因为是私有的只有在定义她的类baseclass中可以用 } } $obj1 = new BaseClass(); $obj1->print_var(); //echo $obj1->protected;//error 因为是受保护的,只有在本类内部或子类父类中可以调用 //echo $obj1->private;//error 同上私有的,只有在本类内调用 echo $obj1->public; echo "<hr />"; $obj2 = new Subclass(); echo '<br />'; echo $obj2->public;echo '<br />'; echo $obj2->protected; //echo $obj2->private;//error //echo $obj2->protected;//error ?>요약
public은 전역을 의미하며 클래스 내부 및 외부의 하위 클래스에서 액세스할 수 있습니다. private은 비공개를 의미하며 이 클래스 내에서만 사용할 수 있습니다.
protected는 보호됨을 의미합니다. 이 클래스 또는 하위 클래스나 상위 클래스에서 액세스할 수 있습니다.위 내용은 PHP의 공개, 비공개 및 보호 속성의 정의, 사용법 및 차이점 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!