Le mot-clé interface

Le mot-clé interface est utilisé pour créer des interfaces - des constructions spéciales qui définissent quelles méthodes une classe doit implémenter. Les interfaces contiennent uniquement des déclarations de méthodes sans leur implémentation. Une classe qui implémente une interface doit contenir toutes les méthodes déclarées dans l'interface.

Syntaxe

phpinterface InterfaceName {
  public function method1();
  public function method2($param);
  // ...
}

Exemple

Créons une interface simple et une classe qui l'implémente :

php<?php
  interface Logger {
    public function log($message);
  }

  class FileLogger implements Logger {
    public function log($message) {
      echo "Logging to file: " . $message;
    }
  }

  $logger = new FileLogger();
  $logger->log("Test message");
?>

Résultat de l'exécution du code :

php'Logging to file: Test message'

Exemple

Une interface peut contenir plusieurs méthodes, et une classe doit toutes les implémenter :

php<?php
  interface Shape {
    public function calculateArea();
    public function calculatePerimeter();
  }

  class Circle implements Shape {
    private $radius;
    
    public function __construct($radius) {
      $this->radius = $radius;
    }
    
    public function calculateArea() {
      return 3.14 * $this->radius * $this->radius;
    }
    
    public function calculatePerimeter() {
      return 2 * 3.14 * $this->radius;
    }
  }

  $circle = new Circle(5);
  echo "Area: " . $circle->calculateArea();
?>

Résultat de l'exécution du code :

php'Area: 78.5'

Voir aussi

  • la commande class,
    pour déclarer des classes
  • la commande trait,
    pour déclarer des traits