Η λέξη-κλειδί interface
Η λέξη-κλειδί interface χρησιμοποιείται για τη δημιουργία διεπαφών - ειδικών κατασκευών που ορίζουν ποιες μέθοδοι πρέπει να υλοποιήσει μια κλάση. Τα interfaces περιέχουν μόνο δηλώσεις μεθόδων χωρίς την υλοποίησή τους. Μια κλάση που υλοποιεί μια διεπαφή πρέπει να περιέχει όλες τις μεθόδους που δηλώνονται στο interface.
Σύνταξη
interface InterfaceName {
public function method1();
public function method2($param);
// ...
}
Παράδειγμα
Ας δημιουργήσουμε ένα απλό interface και μια κλάση που το υλοποιεί:
<?php
interface Logger {
public function log($message);
}
class FileLogger implements Logger {
public function log($message) {
echo "Καταγραφή σε αρχείο: " . $message;
}
}
$logger = new FileLogger();
$logger->log("Δοκιμαστικό μήνυμα");
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'Καταγραφή σε αρχείο: Δοκιμαστικό μήνυμα'
Παράδειγμα
Ένα interface μπορεί να περιέχει πολλές μεθόδους και η κλάση πρέπει να υλοποιήσει όλες αυτές:
<?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 "Εμβαδόν: " . $circle->calculateArea();
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'Εμβαδόν: 78.5'