我有一个带有“回调”参数的函数。这可以是函数或静态类方法。
如何检测方法是否为静态?
答案 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
,或者可能是各种不同的情况,这个不帐户。我真的不明白你在找什么;这可能就足够了。