<?
class Dummy{}
class Test extends ArrayObject{
        public function append(Dummy $value){
                parent::append($value);
        }
}

$d = new Dummy();
$t = new Test();
$t->append($d);
var_dump($t);
//$t->append('a'); // throws error as expected
