Есть ли способ эмулировать магический метод PHP5 __call () в PHP4? - PullRequest
2 голосов
/ 17 сентября 2008

PHP5 имеет «магический метод» __call(), который может быть определен для любого класса, который вызывается при вызове неопределенного метода - он примерно эквивалентен Ruby's method_missing или Perl AUTOLOAD. Можно ли сделать что-то подобное в старых версиях PHP?

Ответы [ 3 ]

2 голосов
/ 22 сентября 2008

Самым важным, что мне не хватало, было то, что __call существует в PHP4, но вы должны включить его для каждого класса, вызывая overload(), как видно из документации php здесь . К сожалению, сигнатуры функций __call () отличаются в PHP4 и PHP5, и, похоже, нет способа создать реализацию, которая будет работать в обоих случаях.

1 голос
/ 17 сентября 2008
0 голосов
/ 17 сентября 2008

Я помню, как использовал его, и немного поиска в Google предполагает, что

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

как функция-член сделает работу.

...