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

Named argument,引數命名

在 PHP 7 中,如果我們要呼叫一個函式時,需要注意呼叫時引數的順序
以 PHP 中的 setcookie() 為例,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);

在引數的前面,我們加上函式中的參數名稱
順序打亂也沒關係

setcookie(secure: true, name: 'test');

 

參考資料:
PHP 8: named arguments
SPATIE - Front Line PHP
PHP RFC: Named Arguments

sharkHead

PHP 與 Python 菜雞工程師,覺得前端有趣,但是無奈沒有慧根
目前沒有任何評論~