الدالة func_num_args()‎ في PHP

من موسوعة حسوب

(PHP 4, PHP 5, PHP 7)

تُعيد الدالّة func_num_args()‎ عدد الوسائط الممرّرة إلى الدّالة.

الوصف

int func_num_args ( void )

تحصل الدالّة func_num_args()‎ على عدد الوسائط الممرّرة إلى الدّالة.

من الممكن أن تُستخدم الدّالة func_num_args()‎ بالتزامن مع الدالّة func_get_args() والدالّة func_get_arg()‎ للسماح للدالات المعرّفة من قبل المستخدم بقبول قوائم وسطاء متغيرة الطول.

القيم المعادة

تُعيد الدالّة func_num_args()‎ عدد الوسائط الممرّرة داخل الدالّة الحالية المعرّفة من قبل المستخدم.

سجل التغييرات

الإصدار الوصف
5.3.0 يمكن الآن استخدام هذه الدالّة في قوائم المعاملات.
5.3.0 إذا استُدعيت هذه الدالّة من النطاق الخارجي لملف مُضمّن من خلال استدعاء include أو  require من داخل دالّة في الملف المستدعي فستولد تحذيرًا وتُعيد ‎-1.

الأخطاء والاستثناءات

تُولد الدالّة func_num_args()‎ تحذيرًا إذا استدعيت من خارج دالّة معرّفة من قبل المستخدم.

أمثلة

المثال 1: مثال عن استخدام الدالّة func_num_args()‎

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Number of arguments: $numargs\n";
}

foo(1, 2, 3);   
?>

سينتج المثال السابق الناتج الآتي:

Number of arguments: 3

المثال 2: مثال عن استخدام الدالّة func_num_args()‎ قبل و بعد الإصدار PHP 5.3

 test.php
<?php
function foo() {
    include './fna.php';
}

foo('First arg', 'Second arg');
?>

fna.php
<?php

$num_args = func_num_args();
var_export($num_args);

?>

سينتج المثال السابق قبل الإصدار PHP 5.3  الناتج الآتي :

 2

سينتج المثال السابق في الإصدار  PHP 5.3 وما بعده الناتج الآتي:

Warning: func_num_args():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fna.php on line 3
-1

ملاحظات

باعتبار أن هذه الداّلة تعتمد على النطاق الحالي (current scope) لتحديد تفاصيل المعامل، فلا يمكن استخدامها كمعاملات دالة في الإصدارات السابقة للإصدار 5.3.0. إذا كان يتوجب تمرير هذه القيمة، فيجب أن تسند النتائج إلى متغير، ثم تمرير ذلك المتغير.

انظر أيضًا

مصادر