Although PHP is not a strong-typed language, PHP 5 does support type hinting for complex data types (objects)

<?php

    
interface pump {

        function 
get_gas();

    }

    class 
premium implements pump {
        function 
get_gas() {

            echo 
"chug!";
        }
    }

    class 
regular implements pump {
    
        function 
get_gas() {

            echo 
"chug!";
        }
    }

    class 
mercedes {

        function 
fill(premium $pump) {
            echo 
$pump->get_gas();
        }

    }

    class 
pinto {
        function 
fill(pump $pump) {
            echo 
$pump->get_gas();
        }
    }

    
$pinto = new pinto;
    
$pinto->fill(new premium);
    
$pinto->fill(new regular);
    
    
$mercedes = new mercedes;
    
$mercedes->fill(new premium);
    
$mercedes->fill(new regular);
?>