Maison > Article > développement back-end > Quelle est la différence entre les trois autorisations d'accès (oop) en php
Il existe trois droits d'accès en PHP orienté objet (oop) :
public : public Tapez
Caractéristiques : appelable en externe, appelable en interne, appelable en sous-classe
Dans les sous-classes, les méthodes ou propriétés publiques peuvent être appelées via self::var, parent::method Appeler la classe parent method
Dans l'instance, vous pouvez appeler la méthode ou la propriété de type public via $obj->var
protected: protected type
Caractéristiques : Non appelable en externe, appelable en interne. Les sous-classes peuvent appeler
Dans les sous-classes, les méthodes ou attributs protégés peuvent être appelés via self::var, et parent::method appelle les méthodes de la classe parent
Methods or. les propriétés de type protégé ne peuvent pas être appelées via $obj->var dans une instance
private : type privé
Caractéristiques : non appelables en externe, appelables en interne, non appelables par sous-classes
Les attributs ou méthodes de ce type ne peuvent être utilisés que dans cette classe. Les attributs et méthodes de type privé ne peuvent pas être appelés dans les instances de cette classe, les sous-classes ou les instances de sous-classes
Exemple de code
<?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();
Supplément : La différence entre soi et parent
Ces deux objets). sont couramment utilisés dans les sous-classes. Leur principale différence est que self peut appeler des propriétés publiques ou protégées dans la classe parent, mais parent ne peut pas appeler b).self :: Il représente les membres statiques (méthodes et propriétés) de la classe actuelle. $ C'est différent, $this fait référence à l'objet actuel Pour plus de connaissances connexes, veuillez visiter leSite Web PHP chinois ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!