2016-12-06 105 views
0

我不知道爲什麼這是無效的:無效函數無法返回無效函數?

Class Foobar 
{ 
    private function foo(): void { 
     return; 
    } 

    public function bar(): void { 
     return $this->foo(); // Compile Error: A void function must not return a value 
    } 

} 

我知道RFC這樣說:

一個返回值爲void類型或void函數的功能,可隱式返回,或有return語句沒有值

但恕我直言foo是無效的,因此應該被允許...

+4

void函數不能返回_nothing_。甚至沒有空。 – Federkun

+0

'return;'實際返回'null',而不是'void' –

+0

$ this-> foo()不會返回void,但爲null,所以您實際返回null – GregaMohorko

回答

1

$this->foo()不返回void,但是null。所以在你的bar函數中,你實際上明確地返回了null,這是不允許的。