如何更正确定ReflectionMethod :: getPrototype

时间:2013-10-29 22:43:46

标签: php reflection

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

示例

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

$refl = new ReflectionClass('MyClass');

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

PHP 5.1.2的输出 - 5.5.5

  

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果原型不存在,则会记录

getPrototype,因此将其转换为布尔值很简单:

public function hasPrototype()
{
    try {
        $this->getPrototype();
        return true;
    }
    catch (\ReflectionException $e) {
        return false;
    }
}