完全不清楚如何确定方法是否有原型。
示例:
<?php
class MyClass
{
public function foo()
{
}
}
$refl = new ReflectionClass('MyClass');
var_dump($refl->getMethod('foo')->getPrototype());
PHP 5.1.2 - 5.5.5 的输出:
致命错误:未捕获的异常"反射异常"与消息 '方法 MyClass::foo 没有原型'...
我想为我的ReflectionMethod包装器实现类似bool ReflectionMethod::hasPrototype( void )
的东西。
有什么想法吗?
如果
原型不存在,则getPrototype
被记录为抛出,因此将其转换为布尔值很简单:
public function hasPrototype()
{
try {
$this->getPrototype();
return true;
}
catch ('ReflectionException $e) {
return false;
}
}