انتقل إلى محتوى الدرس

Unpacking Arrays into Function Arguments تفكيك عناصر المصفوفة وتمريرها عند استدعاء الدالة

استقبل عدداً مرناً من المعاملات عبر معامل التجميع (...$args)، وفكك المصفوفات عند الاستدعاء، وتحقق من وجود الدوال بـ function_exists.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

عند استدعاء دالة، يؤدي وضع النقاط الثلاث ... قبل متغير المصفوفة إلى تفكيك عناصرها وتمرير كل عنصر كمعامل مستقل.

  • في تعريف الدالة يقوم ...$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";