Maison > développement back-end > tutoriel php > Une comparaison simple entre public, privé et protégé en PHP

Une comparaison simple entre public, privé et protégé en PHP

青灯夜游
Libérer: 2023-04-05 06:34:02
original
4745 Les gens l'ont consulté

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.

Une comparaison simple entre public, privé et protégé en PHP

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();  
?>
Copier après la connexion

Sortie :

Une comparaison simple entre public, privé et protégé en PHP

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(); 
?>
Copier après la connexion

Sortie :

Une comparaison simple entre public, privé et protégé en PHP

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(); 
?>
Copier après la connexion

Sortie

Une comparaison simple entre public, privé et protégé en PHP :

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal