オブジェクトをその親オブジェクトにアップキャストできますか?
サンプルコード
class ClassA {
public function foo(){
echo get_class($this);
}
}
class ClassB extends ClassA {
public function foo(){
echo get_class($this); // prints ClassB :)
parent::foo(); // prints ClassB / I want ClassA :(
}
}
$B = new ClassB();
$B->foo();
PHPで可能ですか?
私のシナリオでは、ClassB を構築していて、関数 ClassB::Foo() をオーバーライドしてその動作を拡張し、コントロールを親関数 ClassA::Foo() に戻しますが、オブジェクトになっているためコードが壊れますクラスBの。「コードのにおい」について私を責めないでください。ClassA は私の手に負えません... :-)