PhpStorm无法识别界面中没有的方法

时间:2017-01-11 08:57:31

标签: php methods interface phpstorm contract

<?php

interface iFoo {
    public function print(): iFoo;
}

class Foo implements iFoo {
    public function print(): iFoo {
        return $this;
    }

    public function chain(): iFoo {
        return $this;
    }
}

$foo = new Foo();
$foo->print()
    ->chain() // Method 'chain' not found in iFoo
    ->print();

我怎样才能让PhpStorm识别链式方法,即使它不在合同中?

2 个答案:

答案 0 :(得分:1)

这是因为您告诉PHPStorm,如果您的返回类型为{,那么您将拥有一个没有类2*len(s)的iFoo返回类型{1}}我猜这会奏效。

答案 1 :(得分:1)

chain()方法返回Foo实例:

print()

iFoo不包含public function print(): iFoo { 方法,这就是为什么您看不到&#34;方法未找到&#34;。您可以将返回类型更改为iFoo或将chain()方法添加到Foo