PHP:有没有办法获取方法的返回类型?

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(); // ...

给定以下代码结构,有没有一种方法可以使用PHP5.6获得FooFactory->createService方法的返回类型?我试过ReflectionClass和ReflectionMethod类,但找不到方法。提前谢谢

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');