PHP 8 中的新特性 (三), Named arguments

程式技術
sharkHead

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');

參考資料

sharkHead
written by
sharkHead

後端打工仔,在下班後喜歡研究各種不同的技術。稍微擅長 PHP,並偶爾涉獵前端開發。個性就像動態語言般隨興,但渴望做事能像囉嗦的靜態語言那樣嚴謹。

0 則留言