PHP的魔术方法__call在子类上
发布时间:2020-09-01 20:13:40 所属栏目:PHP 来源:互联网
导读:我的情况最好用一些代码描述: class Foo { function bar () { echo called Foo::bar(); }}class SubFoo extends Foo { function __call($func) { if ($func == bar) { echo inte
我的情况最好用一些代码描述: class Foo { function bar () { echo "called Foo::bar()"; } } class SubFoo extends Foo { function __call($func) { if ($func == "bar") { echo "intercepted bar()!"; } } } $subFoo = new SubFoo(); // what actually happens: $subFoo->bar(); // "called Foo:bar()" // what would be nice: $subFoo->bar(); // "intercepted bar()!" 我知道我可以通过在子类中重新定义bar()(和所有其他相关方法)来实现这一点,但是对于我的目的,如果__call函数可以处理它,这将是很好的.它只是使事情变得更加干净,更易于管理. 这是否可能在PHP? 仅当函数没有被找到时,才调用__call() ,所以你写的例子是不可能的. (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |