PHP -zelfstudie

PHP HOME PHP-intro PHP-installatie PHP-syntaxis PHP-opmerkingen PHP-variabelen PHP-echo / afdrukken PHP-gegevenstypen PHP-strings PHP-nummers PHP-wiskunde PHP-constanten PHP-operators PHP Als...Anders...Anders PHP-switch PHP-loops PHP-functies PHP-arrays PHP Superglobals PHP RegEx

PHP- formulieren

PHP-formulierverwerking PHP-formuliervalidatie PHP-formulier vereist URL/e-mail van PHP-formulier PHP-formulier voltooid

PHP Geavanceerd

PHP-datum en tijd PHP opnemen PHP-bestandsverwerking PHP-bestand openen/lezen PHP-bestand maken/schrijven PHP-bestand uploaden PHP-cookies PHP-sessies PHP-filters PHP-filters geavanceerd PHP-callback-functies PHP JSON PHP-uitzonderingen

PHP OOP

PHP Wat is OOP PHP-klassen/objecten PHP-constructor PHP-vernietiger PHP-toegangsmodificaties PHP-overerving PHP-constanten PHP abstracte lessen PHP-interfaces PHP-kenmerken PHP statische methoden Statische eigenschappen van PHP PHP-naamruimten PHP-iterables

MySQL- database

MySQL-database MySQL Connect MySQL DB maken MySQL-tabel maken MySQL Gegevens invoegen MySQL Laatste ID ophalen MySQL Meerdere invoegen MySQL voorbereid MySQL Gegevens selecteren MySQL Waar MySQL Bestel op MySQL Gegevens verwijderen MySQL-updategegevens MySQL-limietgegevens

PHP XML

PHP XML-parsers PHP SimpleXML-parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

Ajax-intro AJAX PHP AJAX-database AJAX XML Live zoeken in Ajax Ajax-peiling

PHP- voorbeelden

PHP-voorbeelden PHP-compiler PHP-quiz PHP-oefeningen PHP-certificaat

PHP- referentie

PHP-overzicht PHP-array PHP-agenda PHP-datum PHP-map PHP-fout PHP-uitzondering PHP-bestandssysteem PHP-filter PHP FTP PHP JSON PHP-sleutelwoorden PHP Libxml PHP-e-mail PHP-wiskunde PHP Diversen PHP MySQLi PHP-netwerk PHP-uitvoercontrole PHP RegEx PHP SimpleXML PHP-stream PHP-string Beheer van PHP-variabelen PHP XML-parser PHP-zip PHP-tijdzones

PHP OOP - Interfaces


PHP - Wat zijn interfaces?

Met interfaces kunt u specificeren welke methoden een klasse moet implementeren.

Interfaces maken het gemakkelijk om verschillende klassen op dezelfde manier te gebruiken. Wanneer een of meer klassen dezelfde interface gebruiken, wordt dit "polymorfisme" genoemd.

Interfaces worden gedeclareerd met het interfacetrefwoord:

Syntaxis

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

PHP - Interfaces versus abstracte lessen

Interface is vergelijkbaar met abstracte klassen. Het verschil tussen interfaces en abstracte klassen is:

  • Interfaces kunnen geen eigenschappen hebben, terwijl abstracte klassen dat wel kunnen
  • Alle interfacemethoden moeten openbaar zijn, terwijl abstracte klassenmethoden openbaar of beschermd zijn
  • Alle methoden in een interface zijn abstract, dus ze kunnen niet in code worden geïmplementeerd en het abstracte trefwoord is niet nodig
  • Klassen kunnen een interface implementeren en tegelijkertijd erven van een andere klasse

PHP - Interfaces gebruiken

Om een ​​interface te implementeren, moet een klasse het implementssleutelwoord gebruiken.

Een klasse die een interface implementeert, moet alle methoden van de interface implementeren.

Voorbeeld

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

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

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

Laten we uit het bovenstaande voorbeeld zeggen dat we software willen schrijven die een groep dieren beheert. Er zijn acties die alle dieren kunnen doen, maar elk dier doet het op zijn eigen manier.

Met behulp van interfaces kunnen we een code schrijven die voor alle dieren kan werken, zelfs als elk dier zich anders gedraagt:

Voorbeeld

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

Voorbeeld uitgelegd

Kat, Hond en Muis zijn allemaal klassen die de Animal-interface implementeren, wat betekent dat ze allemaal een geluid kunnen maken met behulp van de makeSound()methode. Hierdoor kunnen we door alle dieren lopen en ze vertellen dat ze een geluid moeten maken, zelfs als we niet weten wat voor soort dier ze zijn.

Omdat de interface de klassen niet vertelt hoe de methode moet worden geïmplementeerd, kan elk dier op zijn eigen manier een geluid maken.