ใน PHP 7 เราใช้ positional parameters นั่นคือ เราต้องกำหนดตำแหน่งของอาร์กิวเมนต์แรกให้กับพารามิเตอร์แรกเท่านั้น ค่าเริ่มต้นจะใช้สำหรับอาร์กิวเมนต์ที่ขาดหายไปใน PHP 7.x
ใน PHP 8 เราสามารถส่งอาร์กิวเมนต์ไปยังฟังก์ชันโดยอิงตามชื่อพารามิเตอร์ แทนที่จะส่งตามตำแหน่งพารามิเตอร์ ลำดับไม่มีความสำคัญใน PHP 8 อนุญาตให้ข้ามค่าเริ่มต้นได้แบบสุ่ม และเป็น self-documenting
ตัวอย่าง - Named Arguments ใน PHP 8
ใน PHP 8 อาร์กิวเมนต์เป็น order-independent และ self-documented
เราสามารถข้ามพารามิเตอร์เสริมได้แต่ระบุเฉพาะพารามิเตอร์ที่จำเป็น
<?php
function sample($num = 1, $value = 5){
echo "Number: ", $num;
echo " ";
echo "Value: ", $value;
}
sample(value: 5, num: 30); // Named arguments ในลำดับที่ต่างกัน
?>
ผลลัพธ์
Number: 30 Value: 5
ในนิยามฟังก์ชัน ชื่ออาร์กิวเมนต์ถูกจับคู่กับชื่อพารามิเตอร์ ดังนั้นโค้ดนี้จึงทำงานโดยไม่มีข้อผิดพลาด