【问题标题】:What are 2 parameters do in is_callable() function in php?php 的 is_callable() 函数中的 2 个参数是什么?
【发布时间】:2018-04-09 10:08:58
【问题描述】:

我是 php 新手,谁能说出最后 2 个参数在 php 中的 is_callable() 函数中的作用?

在以下示例中,它返回与 truefalse

相同的结果

先用false

function hello(){
    return "Hello";
}

$x = 'hello';
echo is_callable($x,false);

返回真

现在有了 true

function hello(){
    return "Hello";
}

$x = 'hello';
echo is_callable($x,true);

返回真

最后两个参数在这个函数中的作用。

is_callable(parOne,parTwo,parThree);

我在 php.net 上读到过这方面的内容,但未能理解。谁能告诉这个函数的最后两个参数是什么?

【问题讨论】:

    标签: php callable


    【解决方案1】:

    当第二个参数是true 时,它不会检查第一个参数是否真正命名了现有函数,而只是检查它是否具有用于尝试调用函数的适当语法。这意味着它要么是一个字符串,要么是一个数组,其第一个元素是一个对象,第二个元素是一个字符串。

    例如:

    is_callable('hellox', false);
    

    返回FALSE,因为没有hellox()函数,但是:

    is_callable('hellox', true);
    

    返回TRUE,因为它可能是函数的名称。

    但是

    is_callable(1.23, true);
    

    返回FALSE,因为数字不能用作函数。

    【讨论】:

      【解决方案2】:
      echo '<pre>';
      print_r(
              ["is_callable(null, true)" => [(int)is_callable(null, true), "because null can't store callable name"],
              "is_callable(7,    true)"  =>  [(int)is_callable(7,    true), "because integer can't store callable name"],
              "is_callable('so', true)"  => [(int)is_callable('so', true), "because callable name can be saved in string"],
      
               "is_callable('so', false)"  => [(int)is_callable('so', false), "because such callable doesn't exists in code"],
               "is_callable('is_callable', false)"  => [(int)is_callable('is_callable', false), "because such callable exists and can be executed"],
              ]
              );
      echo '</pre>';
      

      简而言之-参数$syntax_only = true 只是进行类型检查-检查可调用名称是否可以存储在输入变量中。而false - 额外检查代码中是否真的存在这样的可调用对象并且可以执行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-30
        • 2013-01-11
        • 1970-01-01
        • 2016-03-25
        • 2011-09-18
        • 2019-10-22
        • 2014-11-04
        • 2015-01-21
        相关资源
        最近更新 更多