2008-09-16 3 views
2

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

ответ

0

Я помню, используя его, и немного прибегая к помощи предполагает, что

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

как функции члена будет делать эту работу.

+0

Я подозреваю, что jes5199 думал о методе __call, когда спросил, знает ли кто-нибудь что-то вроде метода __call ... Я думаю, что «в PHP4» была важной частью вопроса. – 2008-09-16 20:13:58

2

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

 Смежные вопросы

  • Нет связанных вопросов^_^