public : type public
Dans une sous-classe, vous pouvez appeler la méthode publique ou attribute via self::var, parent::method pour appeler la méthode de la classe parent
Dans l'instance, vous pouvez appeler la méthode ou l'attribut de type public via $obj->var
protected : Type protégé
Peut être appelé dans la sous-classe via la méthode ou l'attribut protégé self::var, parent::method appelle la méthode de la classe parent
Dans ce cas, vous ne pouvez pas appeler la méthode ou l'attribut de type protégé via $obj->var
private : type privé
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, de ces sous-classes ou de ces instances. des sous-classes
2. La différence entre soi et parent
a). 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 le membre statique de la classe actuelle ( Méthodes et propriétés) Contrairement à $this, $this fait référence à l'objet actuel
Le code est le suivant :
<?php /** * parent 只能调用父类中的公有或受保护的方法,不能调用父类中的属性 * self 可以调用父类中除私有类型的方法和属性外的所有数据 */ class User{ public $name; private $passwd; protected $email; public function construct(){ //print CLASS." "; $this->name= 'simple'; $this->passwd='123456'; $this->email = 'bjbs_270@163.com'; } public function show(){ print "good "; } public function inUserClassPublic() { print CLASS.'::'.FUNCTION." "; } protected function inUserClassProtected(){ print CLASS.'::'.FUNCTION." "; } private function inUserClassPrivate(){ print CLASS.'::'.FUNCTION." "; } } class simpleUser extends User { public function construct(){ //print CLASS." "; parent::construct(); } public function show(){ print $this->name."//public "; print $this->passwd."//private "; print $this->email."//protected "; } public function inSimpleUserClassPublic() { print CLASS.'::'.FUNCTION." "; } protected function inSimpleUserClassProtected(){ print CLASS.'::'.FUNCTION." "; } private function inSimpleUserClassPrivate() { print CLASS.'::'.FUNCTION." "; } } class adminUser extends simpleUser { protected $admin_user; public function construct(){ //print CLASS." "; parent::construct(); } public function inAdminUserClassPublic(){ print CLASS.'::'.FUNCTION." "; } protected function inAdminUserClassProtected(){ print CLASS.'::'.FUNCTION." "; } private function inAdminUserClassPrivate(){ print CLASS.'::'.FUNCTION." "; } } class administrator extends adminUser { public function construct(){ parent::construct(); } } /** * 在类的实例中 只有公有属性和方法才可以通过实例化来调用 */ $s = new administrator(); print '-------------------'; $s->show(); ?>
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!