今天在看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不会
分享到:
相关推荐
本文将深入探讨`function_exists()`, `method_exists()`以及`is_callable()`这三个函数的区别和用法。 首先,`function_exists()`是一个用于检查指定的函数名称是否已定义的函数。它的参数是一个字符串,表示要检测...
为此,PHP提供了两个重要的函数:`method_exists()` 和 `is_callable()`。虽然这两个函数在功能上有一些相似之处,但在实际使用过程中,它们之间存在着本质的区别。 `method_exists()` 函数是用于检测一个对象或类...
- **函数原型**:`bool is_callable(mixed $var [, bool $syntax_only [, string &$callable_name]])` - **PHP版本**:自PHP 4.0.6起支持。 - **说明**:此函数用于判断 `$var` 是否为有效的回调函数、类方法或者...
最近在看《PHP核心技术与最佳实践》,里面有使用到一个函数,register_shutdown_function,由于之前没有用过该函数,就去查了一下资料,就觉得是个很实用的函数,所以这里写一下这个函数的用法。下面话不多说了,来...
变量类型的测试函数包括`is_bool()`, `is_int()`, `is_float()`, `is_string()`, `is_array()`, `is_object()`, `is_resource()`, `is_null()` 和 `is_scalar()`,以及 `is_numeric()` 和 `is_callable()`。这些函数...
2.is_callable() – 检测参数是否为合法的可调用结构 3.class_exists() – 检查类是否已定义 4.method_exists() – 检查类的方法是否存在 __FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被...
此外,这个示例还提到了其他一些与函数和类相关的PHP函数,如 `class_exists()` 用于检查类是否存在,`is_callable()` 用于验证一个变量是否可以被当作函数调用。这些函数可以帮助开发者编写更加灵活和适应性的代码...
在PHP编程中,回调函数是一种常见的编程技巧,它允许我们将一个...如果需要更深入地了解`callable`和闭包,可以参考相关的PHP文档以及探讨如何使用`method_exists()`和`is_callable()`函数来进一步验证回调的可用性。
- is_callable():判断变量是否为有效的函数名。 这些函数都是返回一个布尔值,true表示是该类型,false则不是。例如: ```php $num = 123; if (is_int($num)) { echo "变量是一个整型"; } ``` 使用这些函数可以...
4. array_filter() 函数:用于过滤数组中的元素,格式为 array array_filter(array input, callable callback)。 5. array_search() 函数:用于在数组中搜索元素,格式为 mixed array_search(mixed needle, array ...
- isCallable():检测变量是否可以被调用为函数,比如函数名或者实现了__invoke()魔术方法的对象。 在使用这些数据类型判断函数时,需要特别注意is_numeric()函数与is_integer()函数的区别。is_numeric()不仅可以...
- `is_callable()`: 检查变量是否为有效的函数名。 示例代码演示了如何检测一个变量是否为整型: ```php $intData = 8; if (is_integer($intData)) { echo "success"; } else { echo "false"; } ``` #### 九、...
- `is_callable()`:判断给定的变量是否可以作为函数调用。 - `array_key_exists()`:检查数组中是否存在指定的键。 - `file_exists()`:检查文件或目录是否存在。 这些函数都是PHP中处理不同场景下的常见工具,...
在PHP编程语言中,类型约束是一个重要的特性,它允许开发者在定义函数或方法时指定参数类型,以确保传入的数据符合预期。虽然PHP是一种弱类型的语言,但它自PHP 7开始引入了更强的类型提示(type hints)来增强类型...
在PHP编程中,`call_user_func_array` 是一个非常有用的函数,它允许我们动态地调用函数或类方法,同时将一个数组作为参数传递给这些可调用对象。这个函数对于处理灵活的代码结构和元编程场景特别有用,因为我们可以...
而从PHP7.4.0开始,使用`is_callable()`函数可以检查一个变量是否可以被调用,增加了使用匿名函数作为回调函数的可能性。 4. PHP的回调函数在执行前不会检查函数或方法是否存在,如果回调的函数或方法不存在,调用...
本篇文章将详细探讨三种PHP中的自动加载方式:常规加载、`__autoload()`函数以及`spl_autoload_register()`函数。 1. **常规加载**: 常规加载方法包括`require`、`require_once`、`include`和`include_once`。...