Az interface kulcsszó

A(z) interface kulcsszót interfészek létrehozására használják - olyan speciális konstrukciókra, amelyek meghatározzák, hogy egy osztály mely metódusokat kell, hogy implementálja. Az interfészek csak metódusdeklarációkat tartalmaznak implementáció nélkül. Az interfészt implementáló osztálynak tartalmaznia kell az interfészben deklarált összes metódust.

Szintaxis

phpinterface InterfaceName {
  public function method1();
  public function method2($param);
  // ...
}

Példa

Hozzunk létre egy egyszerű interfészt és egy azt implementáló osztályt:

php<?php
  interface Logger {
    public function log($message);
  }

  class FileLogger implements Logger {
    public function log($message) {
      echo "Naplózás fájlba: " . $message;
    }
  }

  $logger = new FileLogger();
  $logger->log("Teszt üzenet");
?>

A kód végrehajtásának eredménye:

php'Naplózás fájlba: Teszt üzenet'

Példa

Egy interfész több metódust is tartalmazhat, és az osztálynak mindet implementálnia kell:

php<?php
  interface Shape {
    public function calculateArea();
    public function calculatePerimeter();
  }

  class Circle implements Shape {
    private $radius;
    
    public function __construct($radius) {
      $this->radius = $radius;
    }
    
    public function calculateArea() {
      return 3.14 * $this->radius * $this->radius;
    }
    
    public function calculatePerimeter() {
      return 2 * 3.14 * $this->radius;
    }
  }

  $circle = new Circle(5);
  echo "Terület: " . $circle->calculateArea();
?>

A kód végrehajtásának eredménye:

php'Terület: 78.5'

Lásd még

  • a(z) class parancsot,
    osztályok deklarálásához
  • a(z) trait parancsot,
    trait-ek deklarálásához