شرح صفوف ومحتوى الفقرة
عند استدعاء دالة، يؤدي وضع النقاط الثلاث ... قبل متغير المصفوفة إلى تفكيك عناصرها وتمرير كل عنصر كمعامل مستقل.
- في تعريف الدالة يقوم
...$argsبتجميع المعاملات في مصفوفة؛ أما عند استدعاء الدالة فيقوم...$arrبتفكيك المصفوفة إلى معاملات منفردة. - في PHP 8.0+، يؤدي تفكيك مصفوفة ترابطية عند الاستدعاء إلى تمرير مفاتيحها النصية كمعاملات مسماة تطابق أسماء معاملات الدالة!
- يغني تفكيك المعاملات بـ
...عن الدالة القديمةcall_user_func_array()بصيغة أسرع وأوضح.
يفكك ...$indexed القيم حسب الترتيب، بينما يطابق ...$named المفاتيح النصية مع أسماء معاملات الدالة مباشرة.
PHP
<?php
function createServerUrl($host, $port, $scheme) {
return "$scheme://$host:$port";
}
$indexed = ["api.closetag.com", 8443, "https"];
$named = ["port" => 9000, "scheme" => "http", "host" => "localhost"];
echo createServerUrl(...$indexed) . "\n";
echo createServerUrl(...$named) . "\n";