【问题标题】:PHP upcasting object [duplicate]PHP向上转换对象[重复]
【发布时间】:2014-07-29 02:33:54
【问题描述】:

我可以将一个对象向上转换为它的父对象吗?

示例代码

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 是我无法控制的... :-)

【问题讨论】:

  • 好吧,为什么不试试呢?

标签: php oop upcasting


【解决方案1】:

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

【讨论】:

  • 我实际上想将对象转换为它的父对象。上面的代码是一个例子。谢谢
猜你喜欢
  • 2012-08-30
  • 1970-01-01
  • 2018-12-10
  • 2016-10-11
  • 1970-01-01
  • 2018-03-18
  • 2014-09-22
  • 2014-05-07
  • 1970-01-01
相关资源
最近更新 更多