شرح صفوف ومحتوى الفقرة
يمكن للدالة أن تشترط معاملات إلزامية ثابتة في البداية، ثم تلتقط جميع المعاملات الإضافية المتبقية في معامل متغير واحد يوضع في آخر قائمة المعاملات.
- يُسمح فقط للمعامل الأخير في تعريف الدالة أن يكون متغيراً (
function logLine($level, ...$messages)). - إن وضع أي معامل آخر بعد
...$messagesيسبب خطأً فادحاً وقت الترجمة (Compile Error). - يضمن هذا النمط تزويد المعاملات الأساسية الإلزامية دائماً مع إبقاء عدد العناصر الإضافية مرناً.
يرتبط المعامل الأول "env" بالمتغير الثابت $prefix، بينما تُحزم القيم الثلاث المتبقية داخل المصفوفة $tags.
PHP
<?php
function buildTagList($prefix, ...$tags) {
$formatted = [];
foreach ($tags as $tag) {
$formatted[] = $prefix . ":" . strtolower($tag);
}
return implode(", ", $formatted);
}
echo buildTagList("env", "Prod", "EU-West", "PHP84") . "\n";