• 关于is_callable用法心得


    今天在看YII的时候看到里面使用了is_callable()函数查了下手册,里面就写了一条:检测参数是否为合法的可调用结构,看的我是云里雾里,谁让我是乡下人呢。。baidu,google了 一下。。才发现,这个函数的使用方法:YII里具体使用是这样:is_callable($handler,true);其实就是说检测这个变量语法是否是一个合法的函数名,不检测函数是否存在

    is_callable函数共有三个参数:

    参数说明

      name

     

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

     

       syntax_only

     

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

     

       callable_name

     

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

     

    好了,上面参数是从百度百科里扒下来的,,先上几个例子吧:

    例1.

    function test(){
        return 'test';
    }
    
    echo is_callable('test', true);  //true
    echo is_callable('demo', true); //true
    echo is_callable('demo');  //false

    例2(class):

    class Test{
        public function pc(){
    
        }
        private function pe(){
            
        }
        protected function pd(){
            
        }
    }
    
    $a = new Test();
    
    echo is_callable(array($a, 'pc'));    //true
    echo is_callable(array($a, 'pe'));    //false
    echo is_callable(array($a, 'pd'));    //false

    注:由上面的例子可以看出is_callable可以检测该方法是否可以直接调用

     

     

  • 相关阅读:
    浏览器extension
    windows 下使用免安装版的mysql
    windows下好用的工具
    那些没来得及做的事
    OSI模型的一张图
    倒计时输出脚本
    selenium忽略链接不安全页面提示的方法
    selenium控制浏览器滚动条缓慢下拉到最底
    paramiko连接主机基本操作
    django点击前端按钮展示后台列表
  • 原文地址:https://www.cnblogs.com/tywei/p/2717949.html
Copyright © 2020-2023  润新知