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
interface 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
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:
'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
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:
'Terület: 78.5'