Manuel PHP

Interfaces

Les interfaces objet permettent de créer du code qui spécifie quelles méthodes une classe doit implémenter.

Les interfaces sont définies en utilisant le mot-clé interface, de la même façon qu'une classe standard mais sans aucun contenu de méthode.

Toutes les méthodes déclarées dans une interface doivent être publiques.

implements

Pour implémenter une interface, l'opérateur implements est utilisé. Toutes les méthodes de l'interface doivent être implémentées dans une classe ; si ce n'est pas le cas, une erreur fatale sera émise. Les classes peuvent implémenter plus d'une interface en séparant chaque interface par une virgule.

Note: Une classe ne peut implémenter deux interfaces qui partagent des noms de fonctions, puisque cela causerait une ambiguïté.

Exemples

Example#1 Exemple d'interface

  1. <?php
  2. // Declaration de l'interface 'iTemplate'
  3. interface iTemplate  
  4. { 
  5.    public function setVariable($name, $var); 
  6.    public function getHtml($template);  
  7. }  
  8.  
  9. // Implémentation de l'interface
  10. // Ceci va fonctionner
  11. class Template implements iTemplate  
  12. { 
  13.    private $vars = array(); 
  14.  
  15.    public function setVariable($name, $var) 
  16.    { 
  17.       $this->vars[$name] = $var; 
  18.    } 
  19.  
  20.    public function getHtml($template) 
  21.    { 
  22.       foreach($this->vars as $name => $value) { 
  23.          $template = str_replace('{' . $name . '}', $value, $template); 
  24.       } 
  25.  
  26.       return $template; 
  27.    }  
  28. }  
  29.  
  30. // Ceci ne fonctionnera pas
  31. // Fatal error: Class BadTemplate contains 1 abstract methods
  32. // and must therefore be declared abstract (iTemplate::getHtml)
  33. class BadTemplate implements iTemplate  
  34. { 
  35.    private $vars = array(); 
  36.  
  37.    public function setVariable($name, $var) 
  38.    { 
  39.       $this->vars[$name] = $var; 
  40.    }  
  41. }  
  42. ?> 

Voir aussi l'opérateur instanceof.


Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Breizh Blog