PHP 클래스의 캡슐화는 무엇을 의미합니까? PHP 클래스 캡슐화 분석

不言
풀어 주다: 2023-04-03 13:10:01
원래의
2630명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!