Services webmasters
Partenaires
Jeux concours gratuits
 
Constructor : constructeur
<<<
Opérateur :: parent
>>>

4.9 Les classes et les objets
4 Référence
 Manuel PHP

Les classes : class
extends : héritage
Constructor : constructeur
->Opérateur ::
parent
Sauvegarde d'objets - cas des sessions
Les fonctions magiques __sleep et __wakeup
Références dans un constructeur
Comparer des objets en PHP 4
Comparer des objets en PHP 4

4.9.4 Opérateur ::

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 est 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.

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() . A 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.

<< Opérateur :: >>
Constructor : constructeur Les classes et les objets parent
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -