php is_function() 来确定变量是否为函数

2022-08-30 07:46:45

我很高兴读到php中的匿名函数,它允许您声明一个比使用create_function更容易的函数的变量。现在我想知道如果我有一个传递变量的函数,我该如何检查它以确定它是否是一个函数?目前还没有is_function()函数,当我对一个函数的变量进行var_dump时::

$func = function(){
    echo 'asdf';
};
var_dump($func);

我得到这个:

object(Closure)#8 (0) { } 

关于如何检查这是否是一个功能的任何想法?


答案 1

使用is_callable来确定给定变量是否为函数。例如:

$func = function()
{  
    echo 'asdf';  
};

if( is_callable( $func ) )
{
    // Will be true.
}

答案 2

您可以使用function_exists来检查是否存在具有给定名称的函数。要将其与匿名函数结合使用,请尝试以下操作:

function is_function($f) {
    return (is_string($f) && function_exists($f)) || (is_object($f) && ($f instanceof Closure));
}

推荐