> 백엔드 개발 > PHP 튜토리얼 > PHP의 공개, 비공개 및 보호의 간단한 비교

PHP의 공개, 비공개 및 보호의 간단한 비교

青灯夜游
풀어 주다: 2023-04-05 06:34:02
원래의
4742명이 탐색했습니다.

PHP에는 공개, 비공개, 보호라는 세 가지 액세스 한정자가 있습니다. 선언 앞에 이러한 키워드를 추가하여 속성, 메서드 또는 상수의 가시성을 정의할 수 있습니다. 그렇다면 그들 사이의 차이점은 무엇입니까? 이 글의 간략한 소개는 다음과 같습니다. 모든 사람에게 도움이 되기를 바랍니다.

PHP의 공개, 비공개 및 보호의 간단한 비교

PHP 공개 액세스 수정자

공개 수정자 내부 및 외부 모두에서 사용할 수 있습니다. 클래스 멤버가 공개로 선언되면 어디에서나 액세스할 수 있습니다. [동영상 튜토리얼 추천: PHP 튜토리얼]

예:

<?php 
header("content-type:text/html;charset=utf-8");  
// BaseClass 
class pub { 
    public $tag_line = "php中文网!"; 
    function display() { 
        echo $this->tag_line."<br/>"; 
    } 
} 
  
// 子类
class child extends pub { 
    function show(){ 
        echo $this->tag_line; 
    } 
}  
  
// 对象声明
$obj= new child; 
  
// 输出
echo $obj->tag_line."<br/>";  
  
$obj->display();  
  
$obj->show();  
?>
로그인 후 복사

출력:
# 🎜🎜#

PHP의 공개, 비공개 및 보호의 간단한 비교

private access modifier

private modifier 가능 정의된 클래스와 해당 상위 클래스 또는 상속된 클래스에서 사용됩니다. 클래스 멤버가 protected로 선언되면 클래스 자체 내와 상속 및 부모 클래스에서만 액세스할 수 있습니다.

예:

<?php 
header("content-type:text/html;charset=utf-8");  
// 基类
class pro { 
    protected $x = 500; 
    protected $y = 500; 
              
    // 实现减法 
    function sub()  
    { 
        echo $sum=$this->x-$this->y . "<br/>"; 
    }      
}  
  
// 子类-继承类
class child extends pro { 
    function mul() //实现乘法
    { 
        echo $sub=$this->x*$this->y; 
    } 
}  
  
$obj= new child; 
$obj->sub(); 
$obj->mul(); 
?>
로그인 후 복사

출력:


PHP의 공개, 비공개 및 보호의 간단한 비교# 🎜🎜#

protected 액세스 수정자protected 수정자는 정의된 클래스 내에서 사용할 수 있습니다. 참고: 사용할 수 없습니다. 클래스 외부 액세스는 상속된 클래스를 의미합니다.

클래스 멤버가 비공개로 선언되면 해당 멤버가 정의된 클래스에서만 접근할 수 있습니다.

예:

<?php 
header("content-type:text/html;charset=utf-8");  
// 基类
class demo { 
    private $name="PHP中文网!"; 
      
    private function show() 
    { 
        echo "这是基类的私有方法"; 
    } 
}  
  
// 子类
class child extends demo { 
    function display() 
    { 
        echo $this->name; 
    } 
}  
  
// 对象声明
$obj= new child; 
  
// 出现异常---未捕获错误:调用私有方法demo::show()
//$obj->show();  
  
//出现异常--未定义的属性:子级::$name
$obj->display(); 
?>
로그인 후 복사
출력

:

PHP의 공개, 비공개 및 보호의 간단한 비교# 🎜🎜#설명:

위의 예에서 볼 수 있듯이 프라이빗 클래스 데이터는 클래스 외부에서 접근할 수 없기 때문에 오류가 발생합니다.

위 내용은 이 글의 전체 내용이며, 모든 분들의 공부에 도움이 되었으면 좋겠습니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !

위 내용은 PHP의 공개, 비공개 및 보호의 간단한 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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