Manuel PHP

Table des matières

Préface
I. Au moment de commencer
II. Installation et configuration
III. Référence du langage
IV. Sécurité
V. Caractéristiques
VI. Référence des fonctions
VII. PHP et le moteur interne Zend
VIII. FAQ : foire Aux Questions
IX. Annexes
Remerciements



Opérateur de contexte de classe ("::")

Attention
La documentation suivante n’est valable que pour PHP 4 et plus récent.

Parfois, il est pratique de faire référence aux fonctions et variables d’une classe de base, ou bien d’utiliser des méthodes de classes qui n’ont pas encore d’objets créés. L’opérateur "::" est là pour ces situations.

**Exemple 18-13. Exemples avec l’opérateur “::”

<?php
class A {
  function example() {
    echo "Je suis la fonction originale A::example().<br />\n";
  }
}
class B extends A {
  function example() {
    echo "Je suis la fonction redéfinie B::example().<br />\n";
    A::example();
  }
}
// Il n'y a pas d'objets de classe A.
// L'affichage est :
//   Je suis la fonction originale A::example().<br />
A::example();
// Création d'un objet de la classe B.
$b = new B;
// L'affichage est :
//   Je suis la fonction redéfinie B::example().<br />
//   Je suis la fonction originale A::example().<br />
$b->example();
?>

Les exemples ci-dessus appellent la fonction “example()” dans la classe A, mais il n’y a pas encore d’objet de classe A, alors il n’est pas possible d’écrire “$a→example()”. À la place, on appelle la fonction “example()” comme une fonction de classe, c’est-à-dire avec le nom de la classe elle-même, et sans objet.

Il y a des fonctions de classe, mais pas de variables de classe. En fait, il n’y a aucun objet au moment de l’appel de la fonction. Donc, une fonction de classe ne peut accéder à aucune variable (mais elle peut accéder aux variables locales et globales). Il faut proscrire l’utilisation de “$this”.

Dans l’exemple ci-dessus, la classe B redéfinit la fonction “example()”. La définition originale dans la classe A est remplacée par celle de B, et n’est plus accessible depuis B, à moins que vous n’appeliez spécifiquement la fonction “example()” de la classe A avec l’opérateur ::. Ecrivez “A::example()” pour cela (en fait, il faudrait écrire “parent::example()”, comme expliqué dans la section suivante).

Dans ce contexte, il y a un objet courant, qui peut avoir d’autres variables objets. De ce fait, lorsqu’il est utilisé depuis une méthode d’un objet, vous pouvez utiliser “$this.”

Travail collaboratif

Contribuez, en ajjoutant des elements a cette page de manuel :

Merci de votre aide
L’equipe Php.fr

 


Index | Afficher le texte source | Anciennes révisions | Derniers changements | Connexion
©2007 Wiki Copyright