オブジェクトのクラスを現在のクラスと比較し、継承されたメソッドで親クラスを参照したい。これが私が考えることができる唯一の方法です:
class foo { function compare($obj) { return get_class($obj) == get_class(new self); } }
class bar extends foo { }
$foo = new foo;
$foo->compare(new foo); //true
$foo->compare(new bar); //false
$bar = new bar;
$bar->compare(new foo); //true
$bar->compare(new bar); //false
self は継承されたメソッドで親クラスを参照するため、これは機能しますが、比較を行うたびにクラスをインスタンス化する必要があるのは過剰に思えます。
もっと簡単な方法はありますか?