检查提供的“callback”参数是否为静态

时间:2012-02-06 22:51:07

标签: php function

我有一个带有“回调”参数的函数。这可以是函数或静态类方法。

如何检测方法是否为静态?

1 个答案:

答案 0 :(得分:2)

我想你可以用反射做到这一点,虽然这将是

假设你的回调是$callback

if (is_array($callback)) { // a function will just be a string
    $classname = $callback[0];
    $methodname = $callback[1];

    $method = new ReflectionMethod($classname, $methodname);

    if ($method->isStatic()) {
        // method is static
    }
}

请注意,当$callback[0]是一个对象时,或者如果你有一个lambda函数$callback,或者可能是各种不同的情况,这个帐户。我真的不明白你在找什么;这可能就足够了。