Maison  >  Article  >  développement back-end  >  Analyse et explication de l'utilisation de l'opérateur d'analyse de plage de PHP (::)

Analyse et explication de l'utilisation de l'opérateur d'analyse de plage de PHP (::)

黄舟
黄舟original
2017-07-02 11:39:531038parcourir

J'ai vu plusieurs symboles liés à PHP aujourd'hui. L'un d'entre eux est @, qui est ajouté devant une variable pour empêcher l'interpréteur PHP de signaler les erreurs, ce qui signifie que même si une erreur se produit, elle ne sera pas affichée.

J'ai vu plusieurs symboles liés à PHP aujourd'hui. L'un d'entre eux est @, qui est ajouté devant une variable pour empêcher l'interpréteur PHP de signaler les erreurs, ce qui signifie que même si une erreur se produit, elle ne sera pas affichée.
Il existe également un symbole plus important Résolution de portée de PHP Opérateur (::)
Accéder à la fonction ou à la base dans une classe sans déclarer d'instance Fonctions et variables dans les classes sont très utiles. L'opérateur :: est utilisé dans ce cas.

<?php 
class A { 
function example() { 
echo "I am the original function A::example().<br />\n"; 
} 
} 
class B 
extends
 A { 
function example() { 
echo "I am the redefined function B::example().<br />\n"; 
A::example(); 
} 
} 
// A 类没有
对象
,这将输出 
// I am the original function A::example().<br /> 
A::example(); 
// 建立一个 B 类的对象 
$b = new B; 
// 这将输出 
// I am the redefined function B::example().<br /> 
// I am the original function A::example().<br /> 
$b->example(); 
?>


L'exemple ci-dessus appelle la fonction example() de la classe A, mais il n'y a pas d'objet de classe A ici, vous ne pouvez donc pas utiliser $a->example() ou similaire. La méthode appelle example(). Au lieu de cela, nous appelons example() en tant que fonction de classe, c'est-à-dire en fonction de la classe elle-même, plutôt que de n'importe quel objet de cette classe.
Il y a des fonctions de classe ici, mais pas de variables de classe. En fait, il n’y a aucun objet lorsque la fonction est appelée. Ainsi, les fonctions d'une classe ne peuvent utiliser aucun objet (mais peuvent utiliser des variables locales ou globales) et ne peuvent pas du tout utiliser la variable $this.
Dans l'exemple ci-dessus, la classe B redéfinit la fonction example(). La fonction example() initialement définie dans la classe A sera masquée et ne prendra plus effet que si l'opérateur :: est utilisé pour accéder à la fonction example() dans la classe A. Par exemple : A::example() (en fait, il devrait être écrit sous la forme parent::example(), qui sera présenté dans le prochain chapitre).
D'ailleurs, pour l'objet courant, il peut avoir des variables objet. Vous pouvez donc utiliser $this et des variables d'objet dans les fonctions d'objet.

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