有没有办法在PHP4中模拟PHP5的__call()魔术方法?

时间:2008-09-16 20:03:19

标签: php4 delegation

PHP5有一个“魔术方法”__call(),可以在调用未定义方法时调用的任何类上定义 - 它大致相当于Ruby的method_missing或Perl的{{1} }。是否可以在旧版本的PHP中执行类似的操作?

3 个答案:

答案 0 :(得分:2)

我遗漏的最重要的一点是PHP4中存在__call,但您必须通过调用overload()按类启用它,如php docs here中所示。 不幸的是,PHP4和PHP5之间的__call()函数签名是不同的,并且似乎没有办法实现将在两者中运行的实现。

答案 1 :(得分:1)

关于DevShed的这篇文章Using Method Call Overloading in PHP 4 可能有所帮助。

答案 2 :(得分:0)

我记得使用它,一点点谷歌搜索表明

function __call($method_name, $parameters, &$return)
{
  $return_value = "You called ${method_name}!";
}

作为成员函数将完成这项工作。