>  기사  >  백엔드 개발  >  PHP의 세 가지 액세스 권한(oop)의 차이점은 무엇입니까?

PHP의 세 가지 액세스 권한(oop)의 차이점은 무엇입니까?

黄舟
黄舟원래의
2017-09-22 09:09:044239검색

PHP의 세 가지 액세스 권한(oop)의 차이점은 무엇입니까?

PHP 객체 지향에는 세 가지 액세스 권한이 있습니다. , self::var를 통해 공개 메소드 또는 속성을 호출할 수 있으며 parent::method는 상위 클래스 메소드를 호출할 수 있습니다. 이 경우 $obj->var를 통해 공개 메소드 또는 속성을 호출할 수 있습니다. protected 보호 유형

기능: 외부에서는 호출할 수 없지만 내부에서는 호출 가능합니다. 하위 클래스에서 호출 가능

하위 클래스에서 보호된 메서드나 속성은 self::var를 통해 호출할 수 있으며 parent::method는 상위 클래스 메서드를 호출할 수 있습니다

인스턴스에서는 호출할 수 없습니다. $obj->var를 사용하여 보호된 유형 메서드 또는 속성을 호출합니다.

private: 개인 유형

특징: 외부에서 호출할 수 없음, 내부적으로 호출 가능, 하위 클래스에서 호출할 수 없음

이 속성 또는 메서드 유형은 이 클래스에서만 사용할 수 있습니다. 이 클래스의 인스턴스, 하위 클래스 또는 하위 클래스의 인스턴스

코드 예제

<?php  
	//final类不能被继承,final类不能被重写
	//public 外部可调用,内部可调用,子类可调用
	//protected 受保护类   外部不可调用   子类可以调用
	//private私有的   外部不可调用   子类不可调用
class human{
	//公有的
	public $money = 1000;
	//受保护的
	protected $che = "bmw";
	//私有的
	private $flower = "meigui";
 
	//调用公有类
	public function t1(){
		echo $this->money;
	}
	//调用受保护的
	public function t3(){
		echo $this->che;
	}
	//调用私有的
	public function t5(){
		echo $this->flower;
	}
}
 
class stu extends human{
	//子类调用公有的
	public function t2(){
		echo $this->money;
	}
	//子类调用受保护的
	public function t4(){
		echo $this->che;
	}
	//子类调用私有的
	public function t6(){
		echo $this->flower;
	}
 
}
 
//实例化对象
$stu = new stu();
echo $stu->money;
echo $stu->t1();
echo $stu->t2();
echo $stu->t3();
echo $stu->t4();
echo $stu->t5();
echo $stu->t6();

보충: self 간의 차이점 및 parent

a) 이 두 개체는 일반적으로 하위 클래스에서 사용됩니다. 주요 차이점은 self는 상위 클래스에서 공개 또는 보호 속성을 호출할 수 있지만 부모는 호출할 수 없다는 것입니다.

b).self:: $this와 달리 $this는 현재 클래스의 정적 멤버(메서드 및 속성)를 나타냅니다. 현재 객체를 말합니다

더 많은 관련 지식을 알고 싶다면

PHP 중국어 홈페이지를 방문해주세요! !

위 내용은 PHP의 세 가지 액세스 권한(oop)의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.