2017-01-11 62 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