ObjectContainer as $Object) { if (in_array($method, get_class_methods(get_class($Object)))) { echo "Calling ".$method."\n"; return true; } } echo "Unknown method $method\n"; return false; } public function addObject($Object) { $this->ObjectContainer[]=$Object; } } $newSpecies=new ObjectMerger; $newSpecies->addObject(new Dog); $newSpecies->Bark(); $newSpecies->addObject(new Monkey); $newSpecies->Climb(); $newSpecies->addObject(new Fish); $newSpecies->Swim(); $newSpecies->UnknownCall(); /* Output: C:\>php -f ObjectMerger.php Calling Bark Calling Climb Calling Swim Unknown method UnknownCall */ ?>