mix-in みたいなこと

<?php
class Foo {
    function func1($s)
    {
        print $s."\n";
    }
}

class Bar {
    var $head = "header:";
    
    function func2($s)
    {
        print $this->head.$s."\n";
    }
}

$foo = new Foo();
$foo->func1("hoge");                #"hoge"
if (method_exists($foo, "func2")) {
    $foo->func2("hoge");            #実行されない
}

aggregate($foo, "Bar");

$foo->func1("hoge");                #"hoge"
if (method_exists($foo, "func2")) {
    $foo->func2("hoge");            #"header:hoge"
}
?>