PHP에서 php 클래스의 캡슐화는 중요한 내용이고 상대적으로 이해하기 어려운 부분입니다. php 클래스의 캡슐화를 배우기 전에 public, protected, private 수식어에 대한 이해가 필요하므로 다음으로 분석해 보겠습니다. 이 부분의 내용을 자세히 설명합니다.
public: 메서드 또는 속성은 모든 범위에서 액세스할 수 있으며 이것이 기본값입니다. 속성 또는 메서드에 대해 액세스 한정자가 지정되지 않으면 공개됩니다.
protected: 메서드 또는 속성은 클래스 또는 상속된 클래스의 멤버에서만 액세스할 수 있습니다.
private: 메서드 또는 속성은 클래스 멤버에서만 액세스할 수 있으며 상속된 클래스 멤버에서는 액세스할 수 없습니다. 비공개로 표시된 메서드나 속성은 상속된 클래스에서 재정의될 수 있습니다. 각 클래스는 정의된 자체 전용 메서드만 볼 수 있습니다.
이 세 가지 수정자는 범위 측면에서 큰 것에서 작은 것으로 정렬되어야 합니다.
public→protected→private은 클래스가 우리의 클래스와 동일하기 때문에 범위 내에 있다고 합니다. 이전 함수는 일부 속성과 메소드를 PHP 클래스로 캡슐화했습니다. 이 캡슐화는 데이터의 "가시성"을 결정하므로 정의된 속성과 메서드를 클래스 외부에서 마음대로 수정할 수 없고 호출만 할 수 있습니다. 이는 캡슐화의 이점이며 보안도 향상됩니다. 이러한 수정자의 역할을 설명하려면 다음 코드를 살펴보십시오.
< ?php class myClass{ public $public="Public"; protected $protected="Protected"; private $private="Private"; function say_Hello(){ //我现在什么也不做,等下再告诉你 } } $obj=new myClass(); echo $obj->public; //echo $obj->protected; //echo $obj->private; ?> < ?php class myClass{ public $public="Public"; protected $protected="Protected"; private $private="Private"; function say_Hello(){ //我现在什么也不做,等下再告诉你 } } $obj=new myClass(); echo $obj->public; //echo $obj->protected; //echo $obj->private; ?>
위의 예를 실행하면 "Public"이 표시되지만 //echo를 입력하면 $obj->private의 주석이 제거되면 다음 오류가 발생합니다. 치명적인 오류: 보호된 항목에 액세스할 수 없습니다. E:apachehtdocsexamplefile.php의 myClass::$protected 속성 라인 13.
클래스의 속성 정의에 마음대로 접근할 수 없다는 것을 알 수 있습니다. 즉, PHP 클래스의 캡슐화에 정의된 일부 작업을 수정할 수 없다는 것입니다. 우리는 이 클래스에 어떤 멤버가 있는지 "외부" 알 수 없습니다. 왜냐하면 이러한 멤버는 다른 클래스에 표시되지 않을 수 있기 때문입니다.
물론 "private"으로 정의된 속성에 액세스하거나 수정해야 하는 경우 PHP에서 제공하는 시스템 메서드인 _get() 및 _set()을 사용할 수도 있습니다. 나는 이것에 대해 나중에 더 많이 배울 것입니다. 왜냐하면 지금은 그것에 대해 이해했을 뿐이기 때문입니다.
추천 관련 기사:
PHP 캡슐화된 HttpClient 클래스 사용 예, httpclient를 캡슐화
상세 PHP 클래스의 캡슐화 및 상속 설명, PHP 캡슐화에 대한 자세한 설명
관련 영상 추천 :
PHP 객체 사용하기- 달성을 위한 사고지향 각 수업이 캡슐화되어 있습니다
위 내용은 PHP 클래스의 캡슐화는 무엇을 의미합니까? PHP 클래스 캡슐화 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!