2017-01-11 34 views
0
<?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识别链式方法?PhpStorm无法识别不在接口中的方法

回答

1

这是因为你告诉PHPStorm,如果你的返回类型是Foo,你将有一个返回类型的iFoo,它没有类chain()我想这会奏效。

+0

它不会因为它不符合合同,我也不能将Foo设置为接口中的返回类型。 –

1

print()方法返回iFoo例如:

public function print(): iFoo { 

iFoo不含chain()方法,这就是为什么你看到 “未找到方法”。您可以将退货类型更改为Foo或将chain()方法更改为iFoo