2017-01-19 62 views
1

我發現有人寫這樣的代碼:如何在PHP函數使用冒號

class Abc 
{ 
    public function foo(int $bar) : string {} 
} 

是什麼:意味着在一個函數?這是一個騙局還是什麼? string更改爲boolarrayint有什麼影響?

我只是不明白爲什麼我們需要: xxx,以及何時使用它?

+0

它只是定義了返回類型。 –

+0

查看手冊http://php.net/manual/en/functions.returning-values.php – apokryfos

回答

5

即返回類型聲明,用PHP 7

您在冒號後面看到的類型引入的一個特性,就是將與函數返回的類型。

有兩種選擇:
默認情況下,返回的值將被轉換爲需要返回的類型。
在你的情況下,它總是會被轉換成一個字符串。

如果嚴格鍵入被啓用(通過declare(strict_types=1);),輸出需要是一個字符串,否則會引發TypeError。

無論哪種方式:作爲開發人員,您始終確信返回類型是字符串。

定義返回類型不是強制性的,所以如果你不需要它,你可以離開它。這種情況下的返回類型可以是任何東西。

+0

感謝您的解釋 – user7440009

0

這是返回類型聲明。在你的例子中,它意味着函數應該返回一個字符串。如果返回字符串(例如定義了__toString()的對象),它將被轉換爲一個字符串,否則會出錯

0

它聲明函數的返回類型。

function foo (int $bar) : string { } 

int $bar部分說,$欄參數必須是整數,而: string部分表示該函數將返回一個字符串。如果該函數未傳遞int或不返回字符串,則會引發TypeError。