有没有办法在PHP4中模拟PHP5的__call()魔术方法?
时间:2020-03-05 18:57:01 来源:igfitidea点击:
PHP5具有"魔术方法" __call(),可以在调用未定义方法时调用的任何类上定义-大致等效于Ruby的method_missing或者Perl的AUTOLOAD。是否可以在旧版本的PHP中执行类似的操作?
解决方案
回答
我记得曾经使用过它,并且使用了一些谷歌搜索功能后发现
function __call($method_name, $parameters, &$return) { $return_value = "You called ${method_name}!"; }
作为成员函数将完成这项工作。
回答
本文"在DevShed上使用PHP 4中的方法调用重载"可能会有所帮助。
回答
我最想念的最重要的一点是PHP中存在__call
,但是我们必须通过调用overload()
在每个类的基础上启用它,如php docs所示。
不幸的是,PHP4和PHP5之间的__call()函数签名不同,并且似乎没有一种方法可以使两者同时运行。