【问题标题】:Check if provided "callback" argument is static检查提供的“回调”参数是否是静态的
【发布时间】:2012-02-06 22:51:06
【问题描述】:

我有一个接受“回调”参数的函数。这可以是函数,也可以是静态类方法。

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

【问题讨论】:

  • 为什么重要?当然call_user_func 做所有你需要做的,而不用担心它是什么类型 回调?
  • 因为回调字符串存储在某处并在不同的时间(不同的页面请求)调用。我想确保它是一个静态方法

标签: php function


【解决方案1】:

我想你可以通过反射来做到这一点,虽然这会

假设你的回调是$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] 是一个对象,或者如果你有一个作为$callback 的lambda 函数,或者可能是各种不同的情况。我真的不明白你在找什么;这可能就足够了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-09
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 2012-12-20
    • 2012-02-02
    相关资源
    最近更新 更多