PHP Interfaces
An interface defines a contract — a set of method signatures that implementing classes must provide. It enables polymorphism without sharing implementation.
An interface defines a contract — a set of method signatures that implementing classes must provide. It enables polymorphism without sharing implementation.
<?php
interface Shape {
public function area(): float;
public function perimeter(): float;
public function describe(): string;
}
class Circle implements Shape {
public function __construct(private float $radius) {}
public function area(): float {
return M_PI * $this->radius ** 2;
}
public function perimeter(): float {
return 2 * M_PI * $this->radius;
}
public function describe(): string {
return "Circle with radius {$this->radius}";
}
}
Interfaces enforce a contract — if a method is missing, PHP raises a fatal error at class definition time.