Maison  >  Article  >  développement back-end  >  Interface PHP

Interface PHP

WBOY
WBOYoriginal
2024-08-29 13:00:281140parcourir

L'interface PHP nous aide à créer des programmes utiles, indiquant les méthodes publiques de la classe qui doivent être exécutées sans même inclure les complexités et la manière dont nos méthodes spécifiques seront implémentées. L'interface PHP définira uniquement les arguments et les noms plutôt que le contenu des méthodes, et toute classe qui implémente l'interface doit implémenter toutes les méthodes définies par l'interface.

PUBLICITÉ Cours populaire dans cette catégorie DEVELOPPEUR PHP - Spécialisation | Série de 8 cours | 3 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Ces interfaces sont similaires à la classe, mais seule la phrase de classe sera remplacée par le mot-clé interface dans la déclaration.

Syntaxe :

<?php
Interface interface_name
{
//List of methods
}
?>

Pourquoi avons-nous besoin d'une interface PHP ?

Il peut implémenter une interface dans la même classe mais créer plus d'interfaces dans la même classe. Les classes peuvent implémenter des méthodes spécifiques avec des interfaces d'objet PHP sans être limitées dans la manière de les implémenter. L'interface est identique ou similaire à la classe, mais le mot-clé interface de PHP remplace le mot-clé class sans utiliser de méthodes dont le contenu est défini. Vous pouvez déclarer un constructeur dans une interface. La ou les classes peuvent implémenter plusieurs interfaces si nécessaire en séparant chaque interface par une virgule.

Vous pouvez étendre les classes dans le langage de programmation PHP en utilisant l'opération « extends ». Les interfaces PHP sont le prochain niveau d'abstraction. C'est similaire aux classes abstraites, mais il y a une légère différence. Les interfaces ou interfaces vous permettent de créer le code, ce qui est utile pour définir les méthodes des classes, mais vous ne pouvez même pas ajouter de code à ces méthodes, alors que les classes abstraites permettent la même chose ou une chose similaire à la ou aux interfaces PHP. mais dans les classes abstraites, on peut ajouter le code à la ou aux méthodes.

Travailler sur l'interface PHP

Les anciennes versions antérieures à PHP 5.3.9 ne pouvaient même pas implémenter seulement deux interfaces portant le même nom car cela provoquerait une certaine ambiguïté. Surtout, les versions récentes de PHP autorisent la duplication de méthodes avec la même signature/similaire. La classe qui implémente l'interface doit utiliser les signatures de méthode compatibles avec le « Principe de substitution de Liskov – LSP ». Il y aura une erreur fatale dans le résultat si les signatures de méthode ne sont pas utilisées.

La classe utilisera l'interface pour ajouter du contenu à ses méthodes, composé uniquement de méthodes sans aucun contenu préexistant. Les méthodes des interfaces sont pour la plupart visibles par le public sans aucune restriction. Les interfaces PHP ne sont pas identiques/similaires aux classes. Les classes peuvent hériter de plusieurs/plusieurs interfaces, mais la classe ne peut hériter que d'une seule classe à la fois. Il a aussi cet avantage. Des variables sont présentes à l'intérieur de la ou des interfaces.

Exemples d'interface PHP

Vous trouverez ci-dessous des exemples d'interfaces PHP :

Exemple n°1

Dans l'exemple ci-dessous, nous avons déclaré une interface nommée « MyInterfaceName1 » avec seulement deux méthodes mentionnées. Ce sont les méthodes 11 et 21 à l'intérieur de l'interface sans utiliser de contenu. Ensuite, une classe nommée « MyClassName1 » implémentera l'interface « MyInterfaceName1 » et utilisera les méthodes disponibles en fonction des exigences.

Comme le dit la définition, l'interface se compose également de méthodes sans contenu. Lors de la mise en place de l'interface, nous discuterons du contenu uniquement en classe. Parfois, les gens appellent ces méthodes d’interface des méthodes abstraites.

Code :

<?php
interface MyInterfaceName1{
public function method11();
public function method21();
}
class MyClassName1 implements MyInterfaceName1{
public function method11(){
echo "Now Method11 Called" . "<br>";
}
public function method21(){
echo "Now Method21 Called". "\n";
}
}
$obj = new MyClassName1;
$obj->method11();
$obj->method21();
?>

Sortie :

Interface PHP

Exemple n°2

Le programme ci-dessous contient deux interfaces, chacune avec sa propre méthode. Ensuite, une classe bird est créée avec une méthode appelée info(). Maintenant, la classe Dove s'étend à la classe Bird, qui implémente l'interface PHP CanFly pour obtenir les instructions d'impression car les instructions d'impression/autres ne seront pas présentes à l'intérieur des interfaces car elles n'auront que des méthodes.

Sur la base des caractéristiques des interfaces Bird 2, « CanFly » et « CanSwim » sont créées avec 1 méthode chacune. Ce sont fly() et swim(). La méthode « info() » dans la classe « Bird » imprime/fait écho aux déclarations pour déterminer le type de l’oiseau et s’il s’agit bien d’un oiseau. Étendez la classe « bird » et implémentez les interfaces « CanFly » et « CanSwim » pour placer les détails des oiseaux comme Dove, Penguin et Duck un par un dans la variable « $name1 ». Ajoutez également des instructions d'écho pour les interfaces.

We have created a function named “describe($bird)” that utilizes the “CanFly” and “CanSwim” interfaces to determine if a creature is a bird. If the $ bird doesn’t satisfy the fly() and swim(), the else condition exists in the PHP program’s output. Now calling all the described functions with the 3 bird classes. You will get the output of the 3 birds as needed. Check out below. It is a simple description, but you will know how it is happening if you look at the code and output of the PHP Program below.

Code:

<?php
/**
* This is An example of the duck typing in the PHP Script
*/
interface CanFly1 {
public function fly1();
}
interface CanSwim1 {
public function swim1();
}
class Bird1 {
public function info1() {
echo "I am a {$this->name1}\n";
echo "I am a bird\n";
}
}
/**
* This is some of the implementations of the birds
*/
class Dove1 extends Bird1 implements CanFly1 {
var $name1 = "Dove";
public function fly1() {
echo "I fly\n";
}
}
class Penguin1 extends Bird1 implements CanSwim1 {
var $name1 = "Penguin";
public function swim1() {
echo "I swim\n";
}
}
class Duck1 extends Bird1 implements CanFly1, CanSwim1 {
var $name1 = "Duck";
public function fly1() {
echo "I fly\n";
}
public function swim1() {
echo "I swim\n";
}
}
/**
* This is one of the simple function which is to describe a bird
*/
function describe1($bird1) {
if ($bird1 instanceof Bird1) {
$bird1->info1();
if ($bird1 instanceof CanFly1) {
$bird1->fly1();
}
if ($bird1 instanceof CanSwim1) {
$bird1->swim1();
}
} else {
die("This is not a bird. I cannot describe it.");
}
}
// Now describing the birds
describe1(new Penguin1);
echo "---\n<br>";
describe1(new Dove1);
echo "---\n<br>";
describe1(new Duck1);

Output:

Interface PHP

Advantages

Following are some of the advantages given.

  • It will allow the unrelated classes to implement similar methods without considering their positions in the class with an inheritance hierarchy.
  • We can model many inheritances in this approach by implementing multiple interfaces in a class, but the class can only extend one class.
  • It can implement an inheritance which can save the caller from the implementation of the object methods fully. This implementation of the heritance concept is also helpful to focus on the object’s interface so that the caller interface doesn’t even affect it.

Recommended Article

This is a guide to the PHP Interface. Here we discuss the PHP Interface, its Advantages, and its various examples to understand the PHP Interface concept briefly. You can also go through our other suggested articles to learn more –

  1. PHP Encryption
  2. PHP Frameworks
  3. Abstract Class in PHP
  4. PHP Superglobal Variables

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Archive zip PHPArticle suivant:Archive zip PHP