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;
           
$this->$y;
           
$this->$z;
        }
        function 
getFormattedString() {
            return 
"[{$this->x}{$this->y}{$this->z}]";
        }
    }

    
$v1 = new Vector3D(1.24.2sqrt(2));
    if(
$v1 instanceof Printable) {
        echo 
"v1 es: ".$v1->getFormattedString();
    }
?>
... ejecutando el código produce
v1 es: [1.2, 4.2, 1.41421356237]