PHP upcasting对象

时间:2014-06-08 10:35:13

标签: php oop upcasting

我可以将对象转发给它的父对象吗?

示例代码

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()但是代码中断,因为它现在是ClassB的对象。我不会责怪我关于"代码闻起来"因为我现在觉得它很难看! ClassA不受我的控制......: - )

1 个答案:

答案 0 :(得分:1)

尝试使用__CLASS__ Magic Constant。它返回您当前所在的类名,无论是否继承任何继承。