PHP:有没有办法获取方法的返回类型?
给定以下代码结构,有没有一种方法可以使用PHP5.6获得FooFactory->createService方法的返回类型?我试过ReflectionClass和ReflectionMethod类,但找不到方法。提前谢谢PHP:有没有办法获取方法的返回类型?,php,reflection,php-5.6,Php,Reflection,Php 5.6,给定以下代码结构,有没有一种方法可以使用PHP5.6获得FooFactory->createService方法的返回类型?我试过ReflectionClass和ReflectionMethod类,但找不到方法。提前谢谢 class FooFactory implements FactoryInterface { public function createService(/*args*/) { $foo = new Foo(); // ...
class FooFactory implements FactoryInterface {
public function createService(/*args*/)
{
$foo = new Foo();
// ...
//inject dependencies
// ...
return $foo;
}
}
class Foo {
/*...methods...*/
}
编辑:我需要在不创建FooFactory实例的情况下获取类名。使用PHP5这是不可能的 您可以(这更多的是一种变通方法,而不是解决方案)在声明中键入提示变量。这将向IDE公开属于已创建服务的方法等 例如:
/* @var \MyFooService $myFooService */
$myFooService = FooFactory->createServixce('MyFooService');
注意,@var声明将通知编辑器变量类型
语法为:
/* @var [CLASS_NAME] [VARIABLE] */
更新:
刚才看到您不想创建FooFactory的实例。
默认情况下,工厂方法不是静态的吗
因此:
变成:
$fooService = FooFactory::getService('FooService');
不是使用PHP5,您必须分析方法中的实际代码。。。。PHP7引入了返回类型提示,但它只是可选的
$fooService = FooFactory::getService('FooService');