تصور کنید که یه تابع به این صورت دارید که دو تا پارامتر اختیاری داره که مقدار پیشفرض رو توی ورودی تابع واسشون تعریف کردیم:
function test($x = 1, $y = 2) {
var_dump($x, $y);
}
اگه مقدار اول رو نیاز داشته باشیم پاس بدیم بهش و دومی رو ندیم همه چی اوکیه و برای متغیر دوم مقدار پیشفرض ست میشه:
test(3);
// Output:
int(3)
int(2)
ولی از اونجایی که توی PHP آرگومان ها باید به ترتیب ارسال بشن نمیتونیم بگیم که مقدار اولی دیفالت باشه یا اون رو ازش بگذر و برو دومی رو مقدار دهی کن. یا باید آپشناله آخرین آرگومان باشه یا باید همون مقدار دیفالت رو مثلا دوباره بهش بدیم. خوشبختانه از ورژن PHP 8 توی این آر اف سی، این امکان اضافه شد که بشه آرگومان ها رو با نام فرستاد. ینی میتونیم به این صورت عمل کنیم:
<?php
function test($x = 1, $y = 2) {
var_dump($x, $y);
}
test(y:3);
// Output:
int(1)
int(3)
جاهایی که تعداد زیادی متغیر اختیاری داریم خیلی به درد میخوره این مدل فراخوانی تابع.
منابع: