En PHP 5 se pueden definir interfazes, que se empleen para asegurarse
de que una clase en particular provee un conjunto dado de métodos con
un patrón determinado:
<?php
interface Printable {
function getFormattedString();
}
class Vector3D implements Printable {
private $x, $y, $z;
function __construct($x, $y, $z) {
$this->x = $x;
$this->y = $y;
$this->z = $z;
}
function getFormattedString() {
return "[{$this->x}, {$this->y}, {$this->z}]";
}
}
$v1 = new Vector3D(1.2, 4.2, sqrt(2));
if($v1 instanceof Printable) {
echo "v1 es: ".$v1->getFormattedString();
}
?>
... ejecutando el código produce
v1 es: [1.2, 4.2, 1.41421356237]