Qu'est-ce que les données cachées ?
Certaines personnes peuvent trouver cela difficile à comprendre. Dans l'article précédent, lors de l'introduction des classes, nous avons dit que le mot-clé utilisé pour définir les variables est public, mais il y a plus que celui-ci, il y a aussi public, private, protected, static et final. Ces mots-clés sont utilisés pour limiter la classe. membres, y compris les autorisations d’accès pour les variables et les méthodes. Ensuite, nous expliquerons d’abord l’utilisation des trois premiers mots-clés.
Rappel amical :
L'utilisation de mots-clés pour limiter les variables membres et les méthodes membres est la même. Nous utilisons donc ici uniquement les variables membres à titre d'exemple pour illustrer les différentes utilisations de ces mots-clés. La même chose s’applique aux méthodes membres.
Maintenant, présentons ces mots-clés en détail :
(1) public
La traduction chinoise est publique. Comme son nom l'indique, il est public et ne nécessite aucune information de données cachée. Il peut être appelé par d'autres classes et objets n'importe où dans le programme (à l'intérieur de la classe, en dehors de la classe). Les sous-classes peuvent hériter et utiliser tous les membres publics de la classe parent.
Avant d'expliquer ce chapitre, nous avons utilisé des déclarations publiques pour définir des variables et des méthodes, et toutes les méthodes sont également publiques par défaut, donc appeler des variables et des méthodes est très déroutant. Pour résoudre cette situation, nous allons parler du deuxième mot-clé privé.
Parce que public était utilisé auparavant, nous ne donnerons pas d'exemple ici.
(2) privé
La traduction chinoise est privée, privée. Les variables et méthodes modifiées par private ne peuvent être appelées et modifiées qu'à l'intérieur de la classe où elles se trouvent et ne sont pas accessibles en dehors de la classe. Ni l’un ni l’autre n’est possible dans les sous-classes.
Exemple d'affichage privé :
<?php header("content-type:text/html;charset=utf-8"); class Preson{ private $name = "雷克赛"; public function setName($name){ $this -> name = $name; } public function getName(){ return $this ->name; } } class Preson1 extends Preson{ } $preson = new Preson(); //正确的使用方式 echo '我的名字叫'; $preson ->setName("布里茨"); //通过访问成员方法进行赋值 echo $preson -> getName(); //在通过访问成员方法进行访问 //错误的使用方式 echo '我的名字叫'; echo Preson :: $name;
Dans l'exemple ci-dessus, la modification et l'accès à la variable privée $name ne peuvent être obtenus qu'en appelant des méthodes membres. S'il est appelé directement, une erreur se produira.
(3) protégé
La traduction chinoise signifie protégé. Le mot-clé private peut masquer complètement les données. Il ne peut être appelé nulle part sauf dans cette classe, ni dans les sous-classes. Mais dans certains cas, certaines variables doivent pouvoir être appelées dans des sous-classes, mais pour d'autres classes, elles doivent quand même être encapsulées. Cette fois, nous utiliserons notre mot-clé protégé.
Les membres de classe modifiés avec protected peuvent être appelés dans cette classe et ses sous-classes, mais ne peuvent pas être appelés ailleurs.
Exemple d'affichage protégé :
<?php header("content-type:text/html;charset=utf-8"); class Preson{ protected $name = '维克托'; } class Preson1 extends Preson{ public function showName(){ echo '只有真确的调用,我才会出现'; echo '<br/>'; echo '我的名字是:' . $this ->name; echo '<br/>'; } } $preson = new Preson1(); $preson -> showName(); echo '你调用错了,所以下面不报错算我输:'; $preson -> name = '德莱文';
Dans l'exemple ci-dessus, déclarez d'abord une variable avec le mot-clé protected, puis appelez-la une fois dans la méthode de la sous-classe, et enfin appelez-la directement à l'extérieur la classe, le résultat est clair en un coup d'œil.
Astuce :
Bien qu'il n'y ait pas de réglementations ni d'exigences obligatoires pour les mots-clés qui modifient les variables en PHP, compte tenu des caractéristiques et de la conception des objets, Généralement, le privé et protégé les mots-clés sont utilisés pour modifier les variables afin d'éviter que les variables soient directement modifiées et appelées en dehors de la classe.
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!