Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Schnittstelle

PHP-Schnittstelle

WBOY
WBOYOriginal
2024-08-29 13:00:281145Durchsuche

Die PHP-Schnittstelle hilft uns, nützliche Programme zu erstellen, indem sie die öffentlichen Methoden der Klasse angibt, die ausgeführt werden müssen, ohne die Komplexität zu berücksichtigen, und wie unsere spezifischen Methoden implementiert werden. Die PHP-Schnittstelle definiert nur Argumente und Namen und nicht den Inhalt der Methoden, und jede Klasse, die die Schnittstelle implementiert, muss alle von der Schnittstelle definierten Methoden implementieren.

WERBUNG Beliebter Kurs in dieser Kategorie PHP-ENTWICKLER - Spezialisierung | 8-Kurs-Reihe | 3 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Diese Schnittstellen ähneln der Klasse, aber nur die Klassenphrase wird in der Deklaration durch das Schnittstellenschlüsselwort ersetzt.

Syntax:

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

Warum brauchen wir eine PHP-Schnittstelle?

Es kann eine Schnittstelle in derselben Klasse implementieren, aber mehrere Schnittstellen innerhalb derselben Klasse erstellen. Klassen können bestimmte Methoden mit PHP-Objektschnittstellen implementieren, ohne in der Art und Weise ihrer Implementierung eingeschränkt zu sein. Die Schnittstelle ist die gleiche oder ähnelt der Klasse, aber das Schlüsselwort interface von PHP ersetzt das Schlüsselwort class, ohne dass Methoden mit definiertem Inhalt verwendet werden. Sie können einen Konstruktor innerhalb einer Schnittstelle deklarieren. Klassen können bei Bedarf mehrere Schnittstellen implementieren, indem sie jede einzelne Schnittstelle durch ein Komma trennen.

Sie können Klassen in der Programmiersprache PHP mit der Operation „extends“ erweitern. PHP-Schnittstellen sind die nächste Abstraktionsebene. Es ähnelt den abstrakten Klassen, es gibt jedoch einen kleinen Unterschied. Mit Interfaces oder Interfaces können Sie den Code erstellen, der hilfreich ist, um die Methoden der Klassen zu definieren. Sie können diesen Methoden jedoch nicht einmal Code hinzufügen, während die abstrakten Klassen dasselbe oder ähnliches wie die PHP-Schnittstelle oder -Schnittstellen ermöglichen aber in abstrakten Klassen kann man den Code zu der oder den Methoden hinzufügen.

Arbeiten an der PHP-Schnittstelle

Ältere Versionen vor PHP 5.3.9 konnten nicht einmal nur zwei Schnittstellen mit demselben Namen implementieren, da dies zu Unklarheiten führen würde. Vor allem die neueren PHP-Versionen erlauben doppelte Methoden mit derselben/ähnlichen Signatur. Die Klasse, die die Schnittstelle implementiert, sollte die Methodensignaturen verwenden, die mit dem „Liskov-Substitutionsprinzip – LSP“ kompatibel sind. Es kommt zu einem schwerwiegenden Fehler im Ergebnis, wenn die Methodensignaturen nicht verwendet werden.

Die Klasse verwendet die Schnittstelle, um Inhalte zu ihren Methoden hinzuzufügen, die ausschließlich aus Methoden ohne bereits vorhandenen Inhalt bestehen. Methoden in den Schnittstellen sind größtenteils ohne Einschränkungen für die Öffentlichkeit sichtbar. PHP-Schnittstellen sind nicht mit den Klassen identisch/ähnlich. Klassen können viele/mehrere Schnittstellen erben, aber Klassen können jeweils nur eine Klasse erben. Es hat auch diesen Vorteil. Innerhalb der Schnittstelle(n) sind Variablen vorhanden.

Beispiele für PHP-Schnittstellen

Unten finden Sie Beispiele für PHP-Schnittstellen:

Beispiel #1

Im folgenden Beispiel haben wir eine Schnittstelle mit dem Namen „MyInterfaceName1“ deklariert, wobei nur zwei Methoden erwähnt wurden. Es handelt sich um Methode11 und Methode21 innerhalb der Schnittstelle, ohne dass Inhalte verwendet werden. Dann implementiert eine Klasse mit dem Namen „MyClassName1“ die Schnittstelle „MyInterfaceName1“ und verwendet die verfügbaren Methoden basierend auf der Anforderung.

Wie die Definition besagt, besteht die Schnittstelle auch aus Methoden ohne Inhalt. Während der Implementierung der Schnittstelle werden wir die Inhalte nur im Unterricht besprechen. Manchmal werden diese Schnittstellenmethoden als abstrakte Methoden bezeichnet.

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();
?>

Ausgabe:

PHP-Schnittstelle

Beispiel #2

Das folgende Programm enthält zwei Schnittstellen, jede mit ihrer eigenen Methode. Dann wird mit einer Methode namens info() ein Klassenvogel erstellt. Jetzt erweitert sich die Klasse Dove auf die Klasse Bird, die die CanFly-PHP-Schnittstelle implementiert, um die Druckanweisungen abzurufen, da Druckanweisungen/andere in den Schnittstellen nicht vorhanden sind, da sie nur über Methoden verfügt.

Basierend auf den Eigenschaften des Bird werden zwei Schnittstellen erstellt, „CanFly“ und „CanSwim“ mit jeweils 1 Methode. Sie sind fly() und swim(). Die Methode „info()“ in der Klasse „Bird“ gibt Anweisungen aus/echos aus, um den Typ des Vogels zu bestimmen und festzustellen, ob es sich tatsächlich um einen Vogel handelt. Erweitern Sie die Klasse „bird“ und implementieren Sie die Schnittstellen „CanFly“ und „CanSwim“, um die Details von Vögeln wie Taube, Pinguin und Ente nacheinander in der Variablen „$name1“ zu platzieren. Fügen Sie außerdem Echo-Anweisungen für die Schnittstellen hinzu.

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:

PHP-Schnittstelle

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

Das obige ist der detaillierte Inhalt vonPHP-Schnittstelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP-ZiparchivNächster Artikel:PHP-Ziparchiv