Vmesnik v PHP

I

V tej vadnici se bomo naučili vmesnika v PHP.

Kaj je vmesnik v OOP?

  • Vmesnik je razred, ki vsebuje samo abstraktne metode.
  • Z uporabo razreda vmesnika lahko določimo, katere metode naj razred izvaja, ki razširijo vmesnik.
  • Za razliko od abstraktnega razreda vam ni treba pisati povzetkov z metodami, ker ima vmesnik lahko samo abstraktne metode.
  • vmesnik ključna beseda se uporablja za razglasitev razreda vmesnika. Poglejte naslednjo sintakso vmesniškega razreda v PHP.
<?php
interface InterfaceName {
  public function someMethod1();
  public function someMethod2($name, $color);
  public function someMethod3() : string;
}
?>

Čeprav so abstraktni razredi in vmesniki precej podobni, se med seboj logično razlikujejo.

Razlika med vmesniškimi in abstraktnimi razredi v PHP

Razred vmesnikaPovzetek
Ne more vsebovati lastnostiLahko vsebuje lastnosti
Vse metode so abstraktne in ključna beseda abstraktna ni potrebna skupaj z metodami.Con vsebuje tako abstraktne kot neabstraktne metode. Abstraktna ključna beseda je potrebna za razglasitev abstraktne metode.
Razred lahko implementira vmesnik skupaj z dedovanjem od drugega razreda. To pomeni, da lahko podrejeni razred hkrati izvaja vmesnik.Otroški razred (podedovan od drugega razreda) ne more izvajati abstraktnega razreda.
Vse metode morajo biti javne glede na modifikatorje dostopa.Metode so lahko javne ali zaščitene glede na modifikatorje dostopa.
Vmesniki proti abstraktnim razredom

Primer vmesnika v PHP

vmesnik ključna beseda se uporablja za deklariranje vmesnika v PHP. Poglejte si naslednjo izvedbo vmesnika v PHP.

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

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

$weight= new Weight();
$weight->standard_unit();
?>
  • V zgornjem primeru. ustvarimo vmesniški razred Unit, ki vsebuje metodo standard_unit.
  • Nato ustvarimo še en razred teža ki izvaja enota vmesnik in v njem definira metodo standard_unit.
  • Iz zgornjega primera lahko vidimo, da lahko razred, ki uporablja vmesnik, preglasi svojo metodo in jo lahko uporablja na svoj način. Recimo, da imamo drugo dolžino razreda, lahko uporablja metodo standard_unit na svoj način.
  • Lahko napišemo logiko, ki bo delovala za vse fizikalne količine, ki imajo enote SI. Poglejte si naslednji primer.
<?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();
}
?>
  • V zgornjem primeru ustvarimo podobne razrede kot v prejšnjem primeru.
  • Razredi teže, dolžine in temperature izvajajo isti vmesnik in lahko uporabljajo metodo standard_unit na svoj način. Torej naredimo matriko objektov teh razredov in jih enega za drugim zavijemo, da razvrstimo metodo standard_unit.

Sklicevanje na uradno dokumentacijo vmesnika PHP 8.

Dodaj komentar

Mreža mentorjev

Naučite se PHP od A do Ž