Interface in PHP

I

In deze tutorial leren we de interface in PHP.

Wat is een interface in OOP?

  • Een interface is een klasse die alleen abstracte methoden bevat.
  • Door de interfaceklasse te gebruiken, kunnen we specificeren welke methoden een klasse moet implementeren die de interface uitbreiden.
  • In tegenstelling tot de abstracte klasse, hoeft u geen samenvattingen te schrijven met de methoden, omdat een interface alleen abstracte methoden kan bevatten.
  • interface trefwoord wordt gebruikt om een ​​interfaceklasse te declareren. Bekijk de volgende syntaxis van een interfaceklasse in PHP.
<?php
interface InterfaceName {
  public function someMethod1();
  public function someMethod2($name, $color);
  public function someMethod3() : string;
}
?>

Hoewel abstracte klassen en interfaces vrij gelijkaardig zijn, verschillen ze logisch van elkaar.

Verschil tussen interface- en abstracte klassen in PHP

InterfaceklasseAbstracte klasse
Kan geen eigenschappen bevattenKan eigenschappen bevatten
Alle methoden zijn abstract en abstract trefwoord is niet vereist, samen met methoden.Con bevat zowel abstracte als niet-abstracte methoden. Abstract trefwoord is vereist om abstracte methode te declareren.
Een klasse kan een interface implementeren samen met het erven van een andere klasse. Het betekent dat een onderliggende klasse tegelijkertijd een interface kan implementeren.Een onderliggende klasse (geërfd van een andere klasse), kan de abstracte klasse niet implementeren.
Alle methoden moeten openbaar zijn met betrekking tot toegangsmodifiers.Methoden kunnen openbaar zijn of beschermd met betrekking tot toegangsmodificatoren.
Interfaces versus abstracte klassen

Voorbeeld van interface in PHP

interface trefwoord wordt gebruikt om een ​​interface in PHP te declareren. Bekijk de volgende implementatie van de interface in PHP.

<?php
interface Unit {
  public function standard_unit();
}

class Weight implements Unit {
  public function standard_unit() {
    echo "Kg";
  }
}

$weight= new Weight();
$weight->standard_unit();
?>
  • In bovenstaand voorbeeld. we creëren een interfaceklasse Unit die een methode standard_unit bevat.
  • Dan maken we een andere klas gewicht dat implementeert de Eenheid interface en definieert daarin de methode standard_unit.
  • Uit het bovenstaande voorbeeld kunnen we zien dat de klasse die de interface gebruikt, zijn methode kan overschrijven en op zijn eigen manier kan gebruiken. Laten we zeggen dat we een andere klasselengte hebben, deze kan de methode standard_unit op zijn eigen manier gebruiken.
  • We kunnen de logica schrijven die werkt voor alle fysieke grootheden met SI-eenheden. Kijk naar het volgende voorbeeld.
<?php
// Interface definition
interface Unit {
  public function standard_unit();
}

// Class definitions
class Weight implements Unit {
  public function makeSound() {
    echo " kg";
  }
}

class Length implements Unit {
  public function standard_unit() {
    echo " meter";
  }
}

class Temperature implements Unit {
  public function standard_unit() {
    echo " celcius";
  }
}

// Create a list of Physical Quanitites
$weight = new Weight();
$length = new Length();
$temperature = new Temperature();
$quantities= array($weight, $length, $temperature);

// Tell the quantities to use its standard unit
foreach($quantities as $quantities) {
  $quantitiy->standard_unit();
}
?>
  • In het bovenstaande voorbeeld maken we vergelijkbare klassen als in het vorige voorbeeld.
  • De gewichts-, lengte- en temperatuurklassen implementeren dezelfde interface en kunnen de standard_unit methode op zijn eigen manier gebruiken. We maken dus een array van de objecten van deze klassen en lussen ze één voor één om de standard_unit-methode te classificeren.

Verwijzing naar de officiële documentatie van de PHP 8-interface.

Voeg commentaar toe

Tutor netwerk

Leer PHP van A tot Z