例如,让我们使用is_callable()函数接受函数名作为参数,并检查是否可以从代码中的该点成功调用它.
如果我想检查对象的方法是否可调用,在引用静态方法时似乎有两个选择:
选项1:
is_callable(array("ObjectName", "MethodName"));
Run Code Online (Sandbox Code Playgroud)
选项2:
is_callable("ObjectName::MethodName");
Run Code Online (Sandbox Code Playgroud)
(实例方法似乎只能使用选项1进行检查,将对象实例作为第一个数组值而不是包含类名的字符串传递.)
这只是一个偏好问题,还是语法糖,还是两者之间存在着明显的差异?
它只是语法糖 - is_callable("ObjectName::MethodName")看起来更好,但需要比阵列方法更高的PHP版本.
但是,要创建实例方法的"指针",必须使用array($instance, 'MethodName').
从PHP文档:
// Type 4: Static class method call (As of PHP 5.2.3)
call_user_func('MyClass::myCallbackMethod');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |