Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen den drei Zugriffsberechtigungen (oop) in PHP?

Was ist der Unterschied zwischen den drei Zugriffsberechtigungen (oop) in PHP?

黄舟
黄舟Original
2017-09-22 09:09:044262Durchsuche

Was ist der Unterschied zwischen den drei Zugriffsberechtigungen (oop) in PHP?

Es gibt drei Zugriffsrechte in PHP objektorientiert (oop):

public: public Typ

Merkmale: Extern aufrufbar, intern aufrufbar, von Unterklassen aufrufbar

In Unterklassen können öffentliche Methoden oder Eigenschaften über self::var, parent::method aufgerufen werden. Rufen Sie die übergeordnete Klasse auf Methode

In der Instanz können Sie die Methode oder Eigenschaft des öffentlichen Typs über $obj->var aufrufen.

protected: protected type

Funktionen : Nicht extern aufrufbar, intern aufrufbar. In Unterklassen können geschützte Methoden oder Attribute über self::var aufgerufen werden, und parent::method ruft Methoden der übergeordneten Klasse auf

Methoden oder Eigenschaften des geschützten Typs können nicht über $obj->var in einer Instanz aufgerufen werden

private: privater Typ

Features: nicht extern aufrufbar, intern aufrufbar, nicht aufrufbar durch Unterklassen

Die Attribute oder Methoden dieses Typs können nur in dieser Klasse verwendet werden. Attribute und Methoden des privaten Typs können nicht in Instanzen dieser Klasse, Unterklassen oder Instanzen dieser Unterklassenmethode aufgerufen werden.

Codebeispiel

<?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();
Ergänzung: Der Unterschied zwischen Selbst und Eltern

Diese beiden Objekte werden häufig in Unterklassen verwendet. Ihr Hauptunterschied besteht darin, dass self öffentliche oder geschützte Eigenschaften in der übergeordneten Klasse aufrufen kann, parent jedoch nicht

b).self:: Es repräsentiert die statischen Mitglieder (Methoden und Eigenschaften) der aktuellen Klasse $ Das ist anders, $this bezieht sich auf das aktuelle Objekt

Weitere Informationen zu diesem Thema finden Sie auf der

PHP-Chinese-Website

! !

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen den drei Zugriffsberechtigungen (oop) in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn