日期:2014-05-17  浏览次数:20458 次

PHP的is_callable和method_exists方法比较

之前发过一篇关于is_callable的文章,主要是PHP手册的翻译,现在把is_callable和mehod_exists做一下比较,加深理解:

?

?

?

比较内容

method_exists

is_callable

调用形式

bool method_exists ( mixed $object , string $method_name )

bool is_callable ( callback $name [, bool $syntax_only = false [, string &$callable_name ]] )

适用范围

仅适用于判断类方法

可以判断全局函数,也可以判断类方法

是否有上下文

是,会判断一个函数是否在当前环境中可调用(例如在子类中判断能否调用父类构造函数)

是否判断权限

是,在类外,判断 private protected 方法会返回 false

是否调用 __call 方法

速度

?