php函数method_exists()与is_callable()的区别
2016-08-10 17:27
316 查看
在编程中,我们有的时候需要判断某个类中是否包含某个方法,除了使用反射机制,PHP还提供了method_exists()和is_callable()方法进行判断。那么两则区别是什么呢?
已知类文件如下:
当方法是private,protected类型的,method_exists会报错,is_callable会返回false。
输出exist
输出exist
下面是判断某一对象中是否存在方法setAlias
当使用method_exists的时候报错如下
当使用is_callable的时候,输出not exist
已知类文件如下:
class Student{ private $alias=null; private $name=''; public function __construct($name){ $this->name=$name; } private function setAlias($alias){ $this->alias=$alias; } public function getName(){ return $this->name; } }
当方法是private,protected类型的,method_exists会报错,is_callable会返回false。
实例
下面是判断某一对象中是否存在方法getName通过method_exists实现
$xiaoming=new Student('xiaoming'); if (method_exists($xiaoming, 'getName')) { echo 'exist'; }else{ echo 'not exist'; } exit();
输出exist
通过is_callable实现
$xiaoming=new Student('xiaoming'); if (is_callable(array($xiaoming, 'getName'))) { echo 'exist'; }else{ echo 'not exist'; } exit();
输出exist
下面是判断某一对象中是否存在方法setAlias
当使用method_exists的时候报错如下
当使用is_callable的时候,输出not exist
相关文章推荐
- php函数method_exists()与is_callable()的区别
- php函数method_exists()与is_callable()的区别
- 解析php函数method_exists()与is_callable()的区别
- php函数method_exists() 与is_callable()区别
- 解析php函数method_exists()与is_callable()的区别
- 解析php函数method_exists()与is_callable()的区别
- 解析php函数method_exists()与is_callable()的区别
- 解析php函数method_exists()与is_callable()的区别
- php函数method_exists()与is_callable()的区别
- function_exists, method_exists, is_callable的区别
- php 函数method_exists()与is_callable()的区别
- function_exists 、 method_exists 和 is_callable 的区别
- PHP的method_exists,function_exists,is_callable的区别
- 【PHP】function_exists , method_exists 与 is_callable的区别
- 判断某个方法是否存在,解析php函数function_exists (),method_exists()与is_callable()的区别
- is_file与file_exists的区别
- PHP中file_exists与is_file,is_dir的区别介绍
- PHP中file_exists与is_file,is_dir的区别介绍
- php中is_file和file_exists的区别
- PHP文件函数 is_file和file_exists区别