Maison >développement back-end >tutoriel php >Une comparaison simple entre public, privé et protégé en PHP
Il existe trois modificateurs d'accès en PHP : public, private et protected Vous pouvez définir la visibilité des propriétés, méthodes ou constantes en ajoutant ces mots-clés avant la déclaration. Alors, quelle est la différence entre eux ? Voici une brève introduction dans cet article, j'espère qu'il sera utile à tout le monde.
Modificateurs d'accès public PHP
Le modificateur public peut être utilisé à la fois en interne et en externe. Si un membre de classe est déclaré public, il est accessible de n’importe où. [Recommandation du didacticiel vidéo : Tutoriel PHP]
Exemple :
<?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(); ?>
Sortie :
modificateur d'accès privé
Le modificateur privé peut être utilisé dans la classe dans laquelle il est défini et dans ses classes parentes ou héritées. Si un membre de classe est déclaré protégé, il n'est accessible qu'au sein de la classe elle-même et à partir des classes d'héritage et parent.
Exemple :
<?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(); ?>
Sortie :
protégé Modificateurs d'accès
le modificateur protégé peut être utilisé dans la classe dans laquelle il est défini Remarque : il n'est pas accessible en dehors de la classe, c'est-à-dire la classe héritée.
Si un membre de classe est déclaré privé, il n'est accessible que par la classe dans laquelle le membre est défini.
Exemple :
<?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(); ?>
Sortie
:
Description :
Comme vous pouvez le voir dans l'exemple ci-dessus, une erreur s'affichera car les données de classe privée ne sont pas accessibles en dehors de la classe.
Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site 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!