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



Syntaxe de base

class

Chaque définition de classe commence par le mot-clé “class”, suivi par le nom de la classe, qui peut être quelconque à condition que ce ne soit pas un mot réservé en PHP. Suivent une paire de parenthèses contenant la définition des membres et des méthodes. Une pseudo-variable “$this” est disponible lorsqu’une méthode est appelée depuis un contexte objet. “$this” est une référence à l’objet appelé (habituellement, l’objet auquel la méthode appartient, mais ce peut être un autre objet si la méthode est appelée de manière statique depuis le contexte d’un autre objet). Ce comportement est illustré dans l’exemple suivant :

Exemple 19-1. La variable “$this” en programmation objet

::<?php
class A
{
  function toto()
  {
    if (isset($this)) {
      echo '$this est définie (';
      echo get_class($this);
      echo ")\n";
    } else {
      echo "\$this n'est pas définie.\n";
    }
  }
}
 
class B
{
  function titi()
  {
    A::toto();
  }
}
 
$a = new A();
$a->toto();
A::toto();
$b = new B();
$b->titi();
B::titi();
?>
::

L’exemple ci-dessus va afficher : $this est définie (a) $this n’est pas définie. $this est définie (b) $this n’est pas définie.
Exemple 19-2. Définition simple d’une classe

<?php
class SimpleClass
{
   // déclaration d'un membre
   public $var = 'une valeur par défaut';
 
   // déclaration de la méthode
   public function displayVar() {
     echo $this->var;
   }
}
?>

La valeur par défaut doit être une expression, et non (par exemple) une variable, un membre d’une classe ou un appel à une fonction.

Exemple 19-3. Valeur par défaut des membres d’une classe

<?php
     class SimpleClass
     {
     // Déclarations de membres non valides :
     public $var1 = 'hello '.'world';
     public $var2 = <<<EOD
Bonjour le monde !
EOD;
     public $var3 = 1+2;
     public $var4 = self::myStaticMethod();
     public $var5 = $myVar;
 
     // Déclarations de membres valides :
     public $var6 = myConstant;
     public $var7 = self::classConstant;
     public $var8 = array(true, false);
}
?>

Note : Il y a plusieurs fonctions utiles pour gérer les classes et les objets. Vous devriez regarder du côté des fonctions Class/Object.

Le mot-clé "new"

Pour créer une instance d’une classe, un nouvel objet doit être créé et assigné à une variable. Un objet doit toujours être assigné lors de la création d’un nouvel objet à moins qu’il ait un constructeur défini qui lance une exception en cas d’erreur. Les classes doivent être définies avant l’instanciation (dans certains cas, c’est impératif).

Exemple 19-4. Création d’une instance

<?php
$instance = new SimpleClass();
?>

Lors de l’assignation d’une instance déjà créée d’une classe à une variable, la nouvelle variable accédera à la même instance de l’objet assigné. Ce comportement est le même que lors du passage d’une instance à une fonction. Une copie d’un objet déjà créé peut être effectuée par clonage.

Exemple 19-5. Assignation d’un objet

<?php
$assigned   =  $instance;
$reference  =& $instance;
 
$instance->var = '$assigned aura cette valeur';
 
$instance = null; // $instance et $reference deviennent null
 
var_dump($instance);
var_dump($reference);
var_dump($assigned);
?>

L’exemple ci-dessus va afficher : NULL NULL object(SimpleClass)#1 (1) { [”var”]⇒ string(30) “$assigned aura cette valeur” }

Le mot-clé "extends"

Une classe peut hériter des méthodes et des membres d’une autre classe en utilisant le mot-clé “extends” dans la déclaration. Il n’est pas possible d’étendre de multiples classes : une classe peut uniquement hériter d’une seule classe de base.

Les méthodes et membres hérités peuvent être surchargés, à moins que la classe parente ait défini une méthode comme final. Pour surcharger, il suffit de redéclarer la méthode avec le même nom que celui défini dans la classe parente. Il est possible d’accéder à une méthode ou un membre surchargé avec l’opérateur parent::

Exemple 19-6. Héritage d’une classe simple

<?php
// Rappel 
class SimpleClass
{
   // déclaration d'un membre
   public $var = 'une valeur par défaut';
 
   // déclaration de la méthode
   public function displayVar() {
     echo $this->var;
   }
}
 
// extension de la classe
class ExtendClass extends SimpleClass
{
  // Redéfinition de la méthode parent
  function displayVar()
  {
    echo "Classe étendue\n";
    parent::displayVar();
  }
}
 
$extended = new ExtendClass();
$extended->displayVar();
?>

L’exemple ci-dessus va afficher : Classe étendue une valeur par défaut

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