Могу ли я проверить, действителен ли обратный вызов? - PullRequest
4 голосов
/ 21 апреля 2011

Я бы хотел иметь возможность проверить, является ли обратный вызов действительным, прежде чем я попытаюсь вызвать его. Возможно ли это?

Если я звоню call_user_func или call_user_func_array с чем-то вроде array($this, 'methodThatDoesNotExist') PHP предупреждает с [E_WARNING] call_user_func() expects parameter 1 to be a valid callback.

1 Ответ

11 голосов
/ 21 апреля 2011

Вам нужна функция is_callable().

Из Руководства PHP по is_callable () :

Убедитесь, что содержимое переменнойможет быть вызван как функция.Это может проверить, что простая переменная содержит имя допустимой функции или что массив содержит правильно закодированный объект и имя функции.

(и он также отлично работает с замыканиями)

...