Maison  >  Article  >  développement back-end  >  Que signifie l’encapsulation des classes PHP ? Analyse de l'encapsulation des classes PHP

Que signifie l’encapsulation des classes PHP ? Analyse de l'encapsulation des classes PHP

不言
不言original
2018-07-26 16:51:082669parcourir

En PHP, l'encapsulation des classes PHP est importante et difficile à comprendre. Avant d'apprendre l'encapsulation des classes PHP, nous devons comprendre les modificateurs publics, protégés et privés. Par conséquent, dans le prochain contenu, analysons. cette partie du contenu en détail.

Public : la méthode ou la propriété est accessible dans n'importe quelle portée, et c'est la valeur par défaut. Si aucun modificateur d'accès n'est spécifié pour une propriété ou une méthode, elle sera publique.

protected : La méthode ou la propriété n'est accessible qu'à partir d'un membre de la classe ou de la classe héritée.

private : la méthode ou la propriété n'est accessible qu'à partir d'un membre de la classe et n'est pas accessible à partir des membres de la classe héritée. Les méthodes ou propriétés marquées comme privées peuvent être redéfinies dans les classes héritées. Chaque classe ne peut voir que les méthodes privées qu'elle définit.

Ces trois modificateurs doivent être triés du plus grand au plus petit en termes de portée comme ceci :

public→protected→private La raison pour laquelle on dit qu'il est dans la portée est que la classe est. comme avant nous. Comme les fonctions, certains attributs et méthodes sont encapsulés dans des classes PHP. Cette encapsulation détermine la « visibilité » des données, de sorte que nous ne pouvons pas modifier à volonté les propriétés et méthodes définies en dehors de la classe, mais que nous pouvons seulement les appeler. C'est l'avantage de l'encapsulation, et cela améliore également la sécurité. Pour illustrer le rôle de ces modificateurs, veuillez regarder le code suivant :

< ?php   
class myClass{   
public $public="Public";   
protected $protected="Protected";   
private $private="Private";   
function say_Hello(){   
//我现在什么也不做,等下再告诉你   
}   
}   
$obj=new myClass();   
echo $obj->public;   
//echo $obj->protected;   
//echo $obj->private;   
?>   
< ?php  
class myClass{  
public $public="Public";  
protected $protected="Protected";  
private $private="Private";  
function say_Hello(){  
//我现在什么也不做,等下再告诉你  
}  
}  
$obj=new myClass();  
echo $obj->public;  
//echo $obj->protected;  
//echo $obj->private;  
?>

En exécutant l'exemple ci-dessus, nous obtenons un "Public", mais lorsque vous mettez //echo Lorsque le commentaire de $obj->private est supprimé, vous obtiendrez l'erreur suivante : Erreur fatale : Impossible d'accéder à protégé. propriété myClass::$protected dans E:apachehtdocsexamplefile.php sur ligne 13.

Vous pouvez voir que nous ne pouvons pas accéder à volonté aux définitions d'attributs de la classe, c'est-à-dire que nous ne pouvons pas modifier certaines opérations qui ont été définies dans l'encapsulation de la classe PHP. C'est la visibilité. Nous ne savons pas « à l'extérieur » quels sont les membres de cette classe, car ces membres peuvent ne pas être visibles par les autres classes.

Bien entendu, si l'on doit accéder ou modifier des propriétés définies comme "privées", on peut également utiliser les méthodes système fournies par PHP : _get() et _set(). J'en apprendrai davantage plus tard, car maintenant je n'en ai qu'une compréhension.

Articles connexes recommandés :

Exemple d'utilisation de la classe HttpClient encapsulée PHP, encapsulant httpclient

Explication détaillée de l'encapsulation et de l'héritage de la classe PHP, php Explication détaillée de l'encapsulation

Recommandations vidéo associées :

Utiliser la pensée orientée objet PHP pour encapsuler chaque 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!

Déclaration:
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