新特性筆記
Type Declarations
Function 參數類型在 PHP 5.6 之前,都只能定義類別名或 array。在 PHP 7 開始,可以定義標準類別,如 int / string 等等。
class Foo
{
public function setNumber(int $number)
{
echo $number;
}
}詳細可參考官網說明
Return Type Declarations
同樣的,回傳也可以定義 type 了
class Foo
{
public function setNumber(int $number): array
{
return range(1, $number);
}
}詳細可參考官網 WIKI 說明
Null Coalesce Operator
這蠻類似三元運算的,下面的意思是 如果 $_GET['user'] 不存在的話,就回傳 nobody
$username = $_GET['user'] ?? 'nobody';詳細可參考官網 WIKI 說明
Combined Comparison Operator
還有另一個稱呼叫 Spaceship Operator,這是用來比較兩邊的值,來回傳三種狀態:
0相等-1小於1大於
Example:
// integer
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
// float
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
// string
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1