`

PHP中的is_callable函数

阅读更多

今天在看Yii源码的时候,看到一个函数is_callable,发现从网上下的chm格式的帮助手册的解释几乎是0,因此g之,发现也木有比较全面的文档,因此翻译一下官网的最新手册吧:

 

原文地址:http://php.net/manual/en/function.is-callable.php

 

is_callable

(PHP 4 >= 4.0.6, PHP 5)

is_callable — 验证变量的内容是否能够进行函数调用

 

Description

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

验证变量的内容是否能够进行函数调用。可以用于检查一个变量是否包含一个有效的函数名称,或者一个包含经过合适编码的函数和成员函数名的数组。

Parameters(参数)

name

既可以是一个字符串类型的函数名称,也可以是一个对象和成员函数名的组合数组,比如:array($SomeOject, 'MethodName')

syntax_only

如果设置为true,那么只是验证name是一个函数或者方法,函数仅仅会拒绝不是字符串,亦或是结构不合法的数组作为回调函数。合法结构是指一个包含两个成员的数组,第一个是对象或者字符串,第二个是一个字符串。

 

callable_name

接收“调用名称”,在下面的例子里它是“someClass::someMethod"。请注意尽管someClass::someMethod()是一个可调用的静态方法,但是这里并不是真的表示一个静态方法

 

Return Values(返回值)

 

如果可调用返回true,否则返回false。

 

 

Examples

 

Example #1 is_callable() example

<?php
//  How to check a variable to see if it can be called
//  as a function.

//
//  Simple variable containing a function
//

function  someFunction () 
{
}

$functionVariable  'someFunction' ;

var_dump ( is_callable ( $functionVariable false $callable_name ));   // bool(true)

echo  $callable_name "\n" ;   // someFunction

//
//  Array containing a method
//

class  someClass  {

  function 
someMethod () 
  {
  }

}

$anObject =new  someClass ();

$methodVariable =array( $anObject , 'someMethod' );

var_dump ( is_callable ( $methodVariable , tru e,$callable_name ));   //bool(true)

echo  $callable_name , "\n" //someClass::someMethod

?>

参考:

I haven't seen anyone note this before, but is_callable will correctly determine the existence of methods made with __call. The method_exists function will not.
is_callable判断是回去调用__call魔术方法来判断,而method_exists不会


 

1
0
分享到:
评论

相关推荐

    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检测变量类型函数

    - **函数原型**:`bool is_callable(mixed $var [, bool $syntax_only [, string &$callable_name]])` - **PHP版本**:自PHP 4.0.6起支持。 - **说明**:此函数用于判断 `$var` 是否为有效的回调函数、类方法或者...

    PHP中register_shutdown_function函数的基础介绍与用法详解

    最近在看《PHP核心技术与最佳实践》,里面有使用到一个函数,register_shutdown_function,由于之前没有用过该函数,就去查了一下资料,就觉得是个很实用的函数,所以这里写一下这个函数的用法。下面话不多说了,来...

    php笔记[定义].pdf

    变量类型的测试函数包括`is_bool()`, `is_int()`, `is_float()`, `is_string()`, `is_array()`, `is_object()`, `is_resource()`, `is_null()` 和 `is_scalar()`,以及 `is_numeric()` 和 `is_callable()`。这些函数...

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

    2.is_callable() – 检测参数是否为合法的可调用结构 3.class_exists() – 检查类是否已定义 4.method_exists() – 检查类的方法是否存在 __FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被...

    php使用function_exists判断函数可用的方法

    此外,这个示例还提到了其他一些与函数和类相关的PHP函数,如 `class_exists()` 用于检查类是否存在,`is_callable()` 用于验证一个变量是否可以被当作函数调用。这些函数可以帮助开发者编写更加灵活和适应性的代码...

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

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

    浅谈php中变量的数据类型判断函数

    - is_callable():判断变量是否为有效的函数名。 这些函数都是返回一个布尔值,true表示是该类型,false则不是。例如: ```php $num = 123; if (is_int($num)) { echo "变量是一个整型"; } ``` 使用这些函数可以...

    PHP 笔记整理--杨利强.pdf

    4. array_filter() 函数:用于过滤数组中的元素,格式为 array array_filter(array input, callable callback)。 5. array_search() 函数:用于在数组中搜索元素,格式为 mixed array_search(mixed needle, array ...

    php数据类型判断函数有哪些

    - isCallable():检测变量是否可以被调用为函数,比如函数名或者实现了__invoke()魔术方法的对象。 在使用这些数据类型判断函数时,需要特别注意is_numeric()函数与is_integer()函数的区别。is_numeric()不仅可以...

    【自学PHP】第二课:PHP数据类型

    - `is_callable()`: 检查变量是否为有效的函数名。 示例代码演示了如何检测一个变量是否为整型: ```php $intData = 8; if (is_integer($intData)) { echo "success"; } else { echo "false"; } ``` #### 九、...

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

    - `is_callable()`:判断给定的变量是否可以作为函数调用。 - `array_key_exists()`:检查数组中是否存在指定的键。 - `file_exists()`:检查文件或目录是否存在。 这些函数都是PHP中处理不同场景下的常见工具,...

    php中的类型约束类库

    在PHP编程语言中,类型约束是一个重要的特性,它允许开发者在定义函数或方法时指定参数类型,以确保传入的数据符合预期。虽然PHP是一种弱类型的语言,但它自PHP 7开始引入了更强的类型提示(type hints)来增强类型...

    PHP中call_user_func_array回调函数的用法示例

    在PHP编程中,`call_user_func_array` 是一个非常有用的函数,它允许我们动态地调用函数或类方法,同时将一个数组作为参数传递给这些可调用对象。这个函数对于处理灵活的代码结构和元编程场景特别有用,因为我们可以...

    PHP回调函数概念与用法实例分析

    而从PHP7.4.0开始,使用`is_callable()`函数可以检查一个变量是否可以被调用,增加了使用匿名函数作为回调函数的可能性。 4. PHP的回调函数在执行前不会检查函数或方法是否存在,如果回调的函数或方法不存在,调用...

    php自动加载方式集合_.docx

    本篇文章将详细探讨三种PHP中的自动加载方式:常规加载、`__autoload()`函数以及`spl_autoload_register()`函数。 1. **常规加载**: 常规加载方法包括`require`、`require_once`、`include`和`include_once`。...

Global site tag (gtag.js) - Google Analytics