Une interface définit un contrat : une liste de méthodes publiques sans implémentation. Une classe qui l'implémente avec implements doit fournir toutes ces méthodes, et peut implémenter plusieurs interfaces. Le code peut ainsi dépendre du contrat plutôt que d'une classe précise.
Exemple
interface Exportable {
public function exporter(): string;
}