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 方法 |
否 |
是 |
速度 |
快 |
慢 |
?