`

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 方法

速度

 

0
1
分享到:
评论

相关推荐

    php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析

    本文将深入探讨`function_exists()`, `method_exists()`以及`is_callable()`这三个函数的区别和用法。 首先,`function_exists()`是一个用于检查指定的函数名称是否已定义的函数。它的参数是一个字符串,表示要检测...

    解析php函数method_exists()与is_callable()的区别

    为此,PHP提供了两个重要的函数:`method_exists()` 和 `is_callable()`。虽然这两个函数在功能上有一些相似之处,但在实际使用过程中,它们之间存在着本质的区别。 `method_exists()` 函数是用于检测一个对象或类...

    php获取、检查类名、函数名、方法名的函数方法

    4.method_exists() – 检查类的方法是否存在 __FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。 __CLASS__ 类的名称(PHP ...

    详解php 使用Callable Closure强制指定回调类型

    在PHP编程中,回调函数是一种常见的编程技巧,它允许我们将一个...如果需要更深入地了解`callable`和闭包,可以参考相关的PHP文档以及探讨如何使用`method_exists()`和`is_callable()`函数来进一步验证回调的可用性。

    php数组函数序列之in_array() – 查找数组中是否存在指定值

    - `method_exists()`:检查类是否具有指定的方法。 - `is_callable()`:判断给定的变量是否可以作为函数调用。 - `array_key_exists()`:检查数组中是否存在指定的键。 - `file_exists()`:检查文件或目录是否存在。...

    深入php面向对象、模式与实践

    - **__isset()** 和 **__unset()**:在使用`isset()`或`unset()`操作未定义的属性时,会调用这些方法。 - **__call()**:当尝试调用对象未定义的方法时,此方法会被触发。它可以用于委派调用到其他类,例如在...

    PHP URL路由类实例

    if (is_callable(array($obj_module, $method_name))) { $get_return = $obj_module->$method_name($ary_url['pramers']); if (!is_null($get_return)) { var_dump($get_return); } } else { die('该方法不能...

    PHP array_reverse() 函数原理及实例解析

    - `function_exists()`, `method_exists()`, `is_callable()`:这三个函数分别用于检查函数和类方法是否存在,以及一个变量是否可以被当作函数调用。 - `header()`:设置 HTTP 响应头,常用于处理重定向、设置内容...

    php数组函数序列之in_array() 查找数组值是否存在

    `function_exists()` 和 `method_exists()` 分别用于检测函数和类方法是否已定义;`is_callable()` 检查变量是否可以被当作函数调用。 总的来说,`in_array()` 是 PHP 中用于数组操作的一个重要工具,通过灵活设置...

    PHP重载基础知识回顾

    PHP提供了一些函数检查的API,如`function_exists`、`method_exists`和`is_callable`,它们依赖于函数的唯一名称来判断函数是否存在。如果允许重载,这些API就需要更复杂的逻辑来处理参数信息,可能会增加编程的...

Global site tag (gtag.js) - Google Analytics