PHP 8 中的新特性 (三), Named arguments
Named argument,又稱「引數命名」。
在 PHP 7 中,如果我們要呼叫一個函式時,需要注意呼叫時引數的順序,以 PHP 中的 setcookie()
為例,其需要的參數如下。
function setcookie (
$name,
$value = "",
$expires_or_options = 0,
$path = "",
$domain = "",
$secure = false,
$httponly = false
)
可以看出只有 $name
為必要參數,其他參數皆為可選。
假設我們在呼叫函式時只想要設定參數 $name
與 $secure
的話,就需要這麼寫。
setcookie('testcookie', '', 0, '', '', true);
除了最後的 $httponly
不需要設定之外,夾在 $name
與 $secure
之中的參數,全部都需要進行設定,沒有辦法跳過。
在 PHP 8 中,我們可以精簡呼叫函式時的程式碼如下。
setcookie(name: 'test', secure: true);
在引數的前面,只要加上函式中的參數名稱,PHP 就會自動幫我們帶入該參數設定的位置,即使順序打亂也沒問題。
setcookie(secure: true, name: 'test');