新随笔  :: 联系 :: 订阅 订阅  :: 管理

is_callable

Posted on 2012-04-11 14:32  张贺  阅读(1038)  评论(0编辑  收藏  举报

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

用来验证传递的参数$name是否是一个有效的方法,并且在类外是否能够正常调用,返回boolearn值

$name  也可是是一个数组,用于存放检测的方法所在的类对象和方法名

$syntax_only   如果该参数为true,则只验证$name是否是一个函数或方法,同时$name只能为string型或者是合法结构的数组型。所谓合法结构的数组型是指:数组必须只有2个元素,第一个元素为要检测的方法所在类的对象(object型)或者类对象的变量(string型),第二个元素要检测的方法名(string型)

$callable_name  返回所检测的方法名

 1 <?php
 2 //  How to check a variable to see if it can be called
 3 //  as a function.
 4 
 5 //
 6 //  Simple variable containing a function
 7 //
 8 
 9 function someFunction() 
10 {
11 }
12 
13 $functionVariable = 'someFunction';
14 
15 var_dump(is_callable($functionVariable, false, $callable_name));  // bool(true)
16 
17 echo $callable_name, "\n";  // someFunction
18 
19 //
20 //  Array containing a method
21 //
22 
23 class someClass {
24 
25   function someMethod() 
26   {
27   }
28 
29 }
30 
31 $anObject = new someClass();
32 
33 $methodVariable = array($anObject, 'someMethod');
34 
35 var_dump(is_callable($methodVariable, true, $callable_name));  //  bool(true)
36 
37 echo $callable_name, "\n";  //  someClass::someMethod
38 
39 ?>