可以使用动态调用函数或方法call_user_func_array
。如果调用本身失败,FALSE
则返回。此外,call_user_func_array
返回被调用的函数或方法的返回值。
因此,当被调用的函数或方法FALSE
也返回时(例如,参见 SO示例),该值将被识别为误报。
如何可靠地检查函数或方法调用是否成功执行call_user_func_array
?
编辑:人们倾向于指出is_callable
. 但这不是在调用方法之前检查方法是否存在,从而避免可能的错误。实际上在进行call_user_func_array
函数调用之前,它的参数和参数类型已经被验证使用Reflection
以避免大规模分配攻击。
文档提到了返回FALSE
值,但我看不到如何使用它来检查调用是否成功。