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 ]] ) |
适用范围 | 仅适用于判断类方法 | 可以判断全局函数,也可以判断类方法 |
是否有上下文 | *本文来源gaodai#ma#com搞@代~码^网+搞代gaodaima码否 | 是,会判断一个函数是否在当前环境中可调用(例如在子类中判断能否调用父类构造函数) |
是否判断权限 | 否 | 是,在类外,判断private和protected方法会返回false |
是否调用__call方法 | 否 | 是 |
速度 | 快 | 慢 |
?