我發現有人寫這樣的代碼:如何在PHP函數使用冒號
class Abc
{
public function foo(int $bar) : string {}
}
是什麼:
意味着在一個函數?這是一個騙局還是什麼? string
更改爲bool
或array
或int
有什麼影響?
我只是不明白爲什麼我們需要: xxx
,以及何時使用它?
我發現有人寫這樣的代碼:如何在PHP函數使用冒號
class Abc
{
public function foo(int $bar) : string {}
}
是什麼:
意味着在一個函數?這是一個騙局還是什麼? string
更改爲bool
或array
或int
有什麼影響?
我只是不明白爲什麼我們需要: xxx
,以及何時使用它?
即返回類型聲明,用PHP 7
您在冒號後面看到的類型引入的一個特性,就是將與函數返回的類型。
有兩種選擇:
默認情況下,返回的值將被轉換爲需要返回的類型。
在你的情況下,它總是會被轉換成一個字符串。
如果嚴格鍵入被啓用(通過declare(strict_types=1);
),輸出需要是一個字符串,否則會引發TypeError。
無論哪種方式:作爲開發人員,您始終確信返回類型是字符串。
定義返回類型不是強制性的,所以如果你不需要它,你可以離開它。這種情況下的返回類型可以是任何東西。
感謝您的解釋 – user7440009
這是返回類型聲明。在你的例子中,它意味着函數應該返回一個字符串。如果返回字符串(例如定義了__toString()的對象),它將被轉換爲一個字符串,否則會出錯
它聲明函數的返回類型。
function foo (int $bar) : string { }
的int $bar
部分說,$欄參數必須是整數,而: string
部分表示該函數將返回一個字符串。如果該函數未傳遞int或不返回字符串,則會引發TypeError。
它只是定義了返回類型。 –
查看手冊http://php.net/manual/en/functions.returning-values.php – apokryfos