PHP5 имеет «магический метод» __call(), который может быть определен для любого класса, который вызывается при вызове неопределенного метода - он примерно эквивалентен Ruby's method_missing или Perl AUTOLOAD. Можно ли сделать что-то подобное в старых версиях PHP?
__call()
method_missing
AUTOLOAD
Самым важным, что мне не хватало, было то, что __call существует в PHP4, но вы должны включить его для каждого класса, вызывая overload(), как видно из документации php здесь . К сожалению, сигнатуры функций __call () отличаются в PHP4 и PHP5, и, похоже, нет способа создать реализацию, которая будет работать в обоих случаях.
__call
overload()
Эта статья, Использование перегрузки вызовов методов в PHP 4 в DevShed может помочь.
Я помню, как использовал его, и немного поиска в Google предполагает, что
function __call($method_name, $parameters, &$return) { $return_value = "You called ${method_name}!"; }
как функция-член сделает работу.