1

完全不清楚如何确定方法是否具有原型。

示例

<?php
class MyClass
{
    public function foo()
    {
    }
}

$refl = new ReflectionClass('MyClass');

var_dump($refl->getMethod('foo')->getPrototype());

PHP 5.1.2 - 5.5.5 的输出

致命错误:未捕获的异常 'ReflectionException' 带有消息 'Method MyClass::foo 没有原型'...

我想bool ReflectionMethod::hasPrototype( void )为我的 ReflectionMethod 包装器实现类似的东西。

有任何想法吗?

4

1 回答 1

2

getPrototype如果原型不存在,则记录为抛出,因此将其转换为布尔值很简单:

public function hasPrototype()
{
    try {
        $this->getPrototype();
        return true;
    }
    catch (\ReflectionException $e) {
        return false;
    }
}
于 2013-10-29T22:47:19.967 回答