Волшебные функции __call () для функций?

Магическая функция __call () в php используется в классах. Есть ли какая-либо подобная магическая функция, кроме функций? Подобно __autoload () для функций.

Например, что-то вроде этого

function __call($name, $arguments) { echo "Function $name says {$arguments[0]} "; } random_func("hello"); 

Нет, я не думаю, что такая магическая функция существует.

Одним из обходных путей для этого было бы включение ваших функций в статический класс и добавление к этому классу магического метода __callStatic (только для PHP 5.3):

 class Func { /** As of PHP 5.3.0 */ public static function __callStatic($name, $arguments) { // Note: value of $name is case sensitive. echo "Calling static method '$name' " . implode(', ', $arguments). "\n"; } } Func::random_func("hello!"); 

Для PHP <5.3 вы можете сделать то же самое, но вам нужно создать экземпляр объекта и использовать метод __call magic.

 $Func = new Func; $Func->random_func("hello!"); 

Нет. Вызов функции, которая не существует, всегда приведет к ошибке FATAL.

** Возможно, расширение zend может перехватить это с помощью fcall_begin_handler , но я не уверен.