Tutoriel PHP

ACCUEIL PHP Introduction PHP Installation PHP Syntaxe PHP Commentaires PHP Variables PHP Écho PHP / Impression Types de données PHP Chaînes PHP Numéros PHP Mathématiques PHP Constantes PHP Opérateurs PHP PHP Si... Sinon... Sinon Commutateur PHP Boucles PHP Fonctions PHP Tableaux PHP Superglobales PHP Expression régulière PHP

Formulaires PHP

Gestion des formulaires PHP Validation de formulaire PHP Formulaire PHP requis URL/courriel du formulaire PHP Formulaire PHP terminé

PHP Avancé

Date et heure PHP Inclure PHP Gestion des fichiers PHP Fichier PHP Ouvrir/Lire Création/écriture de fichier PHP Téléchargement de fichier PHP Cookies PHP Séances PHP Filtres PHP Filtres PHP avancés Fonctions de rappel PHP PHPJSON Exception PHP

POO PHP

PHP Qu'est-ce que la POO Classes/Objets PHP Constructeur PHP Destructeur PHP Modificateurs d'accès PHP Héritage PHP Constantes PHP Classes abstraites PHP Interface PHP Caractéristiques PHP Méthodes statiques PHP Propriétés statiques PHP Espaces de noms PHP Itérables PHP

Base de données MySQL

Base de données MySQL Connexion MySQL Créer une base de données MySQL Créer une table MySQL MySQL Insérer des données MySQL obtenir le dernier ID MySQL Insérer plusieurs MySQL préparé MySQL Sélectionner les données MySQL Où Trier MySQL par MySQL Supprimer les données Données de mise à jour MySQL Données de limite MySQL

XML PHP

Analyseurs PHP XML Analyseur PHP SimpleXML PHP SimpleXML - Obtenir Expatriation PHP XML PHP XML DOM

PHP -AJAX

Introduction à AJAX PHP AJAX Base de données AJAX XML AJAX Recherche en direct AJAX Sondage AJAX

Exemples PHP

Exemples PHP Compilateur PHP Questionnaire PHP Exercices PHP Certificat PHP

Référence PHP

Présentation de PHP Tableau PHP Calendrier PHP Date PHP Annuaire PHP Erreur PHP Exception PHP Système de fichiers PHP Filtre PHP FTP PHP PHPJSON Mots clés PHP PHP LibxmlComment Messagerie PHP Mathématiques PHP Divers PHP PHP MySQL Réseau PHP Contrôle de sortie PHP Expression régulière PHP PHP SimpleXML Flux PHP Chaîne PHP Gestion des variables PHP Analyseur PHP XML Code postal PHP Fuseaux horaires PHP

PHP POO - Interfaces


PHP - Qu'est-ce qu'une interface ?

Les interfaces vous permettent de spécifier les méthodes qu'une classe doit implémenter.

Les interfaces facilitent l'utilisation d'une variété de classes différentes de la même manière. Lorsqu'une ou plusieurs classes utilisent la même interface, on parle de "polymorphisme".

Les interfaces sont déclarées avec le interfacemot clé :

Syntaxe

<?php
interface InterfaceName {
  public function someMethod1();
  public function someMethod2($name, $color);
  public function someMethod3() : string;
}
?>

PHP - Interfaces vs classes abstraites

Les interfaces sont similaires aux classes abstraites. La différence entre les interfaces et les classes abstraites est :

  • Les interfaces ne peuvent pas avoir de propriétés, tandis que les classes abstraites peuvent
  • Toutes les méthodes d'interface doivent être publiques, tandis que les méthodes de classe abstraite sont publiques ou protégées
  • Toutes les méthodes d'une interface sont abstraites, elles ne peuvent donc pas être implémentées dans le code et le mot clé abstract n'est pas nécessaire
  • Les classes peuvent implémenter une interface tout en héritant d'une autre classe en même temps

PHP - Utilisation d'interfaces

Pour implémenter une interface, une classe doit utiliser le implementsmot clé.

Une classe qui implémente une interface doit implémenter toutes les méthodes de l'interface.

Exemple

<?php
interface Animal {
  public function makeSound();
}

class Cat implements Animal {
  public function makeSound() {
    echo "Meow";
  }
}

$animal = new Cat();
$animal->makeSound();
?>

A partir de l'exemple ci-dessus, disons que nous voudrions écrire un logiciel qui gère un groupe d'animaux. Il y a des actions que tous les animaux peuvent faire, mais chaque animal le fait à sa manière.

En utilisant des interfaces, nous pouvons écrire du code qui peut fonctionner pour tous les animaux même si chaque animal se comporte différemment :

Exemple

<?php
// Interface definition
interface Animal {
  public function makeSound();
}

// Class definitions
class Cat implements Animal {
  public function makeSound() {
    echo " Meow ";
  }
}

class Dog implements Animal {
  public function makeSound() {
    echo " Bark ";
  }
}

class Mouse implements Animal {
  public function makeSound() {
    echo " Squeak ";
  }
}

// Create a list of animals
$cat = new Cat();
$dog = new Dog();
$mouse = new Mouse();
$animals = array($cat, $dog, $mouse);

// Tell the animals to make a sound
foreach($animals as $animal) {
  $animal->makeSound();
}
?>

Exemple expliqué

Cat, Dog et Mouse sont toutes des classes qui implémentent l'interface Animal, ce qui signifie qu'elles sont toutes capables de faire un son en utilisant la makeSound()méthode. Pour cette raison, nous pouvons parcourir tous les animaux et leur dire de faire un son même si nous ne savons pas de quel type d'animal il s'agit.

Comme l'interface n'indique pas aux classes comment implémenter la méthode, chaque animal peut émettre un son à sa manière.