You can now define object interfaces, which is a way to ensure that a given class provides a certain set of functions you can rely on elsewhere.

<?php
interface read_file {
    function 
open($file_name);
    function 
read($bytes);
    function 
close();
}

class 
rf implements read_file {
    private 
$fp;

    function 
open($file_name) { $this->fp fopen($file_name"r"); }
    function 
read($bytes) { return fread($this->fp$bytes); }
    function 
close() { fclose($this->fp); }
}

$f = new rf();
/* ensure that object inside $ implements read_file interface */
if ($f instanceof read_file) {
    
$f->open(__FILE__);
    echo 
$f->read(4);
    
$f->close();    
}
?>