给定扩展类B的类A,如何调用类A的__call函数覆盖从父类继承的匹配函数?魔法方法如何覆盖继承
考虑这个简单的例子:
class A
{
public function method_one()
{
echo "Method one!\n";
}
}
class B extends A
{
public function __call($name, $args)
{
echo "You called $name!\n";
}
}
$b = new B();
$b->method_one();
当我运行它,我得到的输出Method one!
。我想得到输出You called method_one!
。
那么,我如何让子类的魔法方法覆盖父类定义的方法?
我需要扩展对象,因为我需要访问A中的受保护方法,但我想将所有公共方法引导到我自己的__call处理程序中。有没有办法做到这一点?
__call仅将覆盖AREN方法”否则可以访问;你的method_one()是公开的,所以它是可访问的。试着让它保护 – 2013-05-01 10:25:21
为什么你不使用正常的覆盖? – 2013-05-01 10:26:01
@ShankarDamodaran因为我有很多我想重写的函数。我首先扩展它的唯一原因是获得我需要的受保护方法 – Benubird 2013-05-01 10:27:35