php 调用成员函数,php – 显式调用基类的成员函数

我有一个基类,定义了魔术方法__call和_callStatic,以便处理对未声明的成员函数的调用.

当你同时拥有非静态和静态的两者时,似乎无法从派生类中调用静态的,因为静态运算符::如果与父类一起使用,则不隐式表示静态,或者在本例中,基类的名称.这是一个特殊的语法:http://php.net/manual/pl/keyword.parent.php

我想在这里做的是调用__callStatic的派生类失败,因为调用默认为非静态调用并由__call处理.

如何在基类的成员函数上进行显式静态调用?

class MyBaseClass {

public static function __callStatic($what, $args)

{

return 'static call';

}

public function __call($what, $args)

{

return 'non-static call';

}

}

class MyDerivedClass extends MyBaseClass {

function someAction()

{

//this seems to be interpreted as parent::Foo()

//and so does not imply a static call

return MyBaseClass::Foo(); //

}

}

$bar = new MyDerivedClass();

echo $bar->someAction(); //outputs 'non-static call'

?>

请注意,删除非静态__call方法会使脚本输出“静态调用”,因为在未声明__call时会调用__callStatic.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值