MixIn

いろいろ調べていたら、aggregate関数ってのがあったので何のために使うんだろうとおもったら、これ使えばMixInができますね。以下のようにすると、AクラスにBクラスのbarという関数がMixInされます。なので、出力結果はちゃんと「foobar」になります。

これはおもしろいかも!と思ったが、PHP5では使えなくなってますね(PHP5.0.2ではそんな関数ないっていわれる・・・)。Mapleでなんかつかったろうかと思ったけど、やめとくか。面白いと思うんだが。

<?php

class A {
    function foo() {
        print "foo";
    }
}

class B {
    function bar() {
        print "bar";
    }
}

$a =& new A;
aggregate($a, 'B');

print $a->foo();
print $a->bar();

?>