PHP-MySql

PHP-MySql class website

PHP-MySql

PHP-MySql class website

پایگاه اطلاع رسانی کلاس php-mysql انجمن علمی کامپیوتر دانشگاه پیام نور دماوند

تابع func_get_args()

سه شنبه, ۹ ارديبهشت ۱۳۹۳، ۰۴:۳۴ ب.ظ
<?php
function foo()
{
     $numargs = func_num_args();
     echo "Number of arguments: $numargs<br />\n";
     if ($numargs >= 2) {
         echo "Second argument is: " . func_get_arg(1) . "<br />\n";
     }
}

foo (1, 2, 3);
?>

در مثال بالا تابع ()foo پس از تعریف باید بر روی سه آرگومان عملیاتی را انجام دهد.
تابع() func_num_args تعداد آرگومانهای ارسالی را شمارش میکند.
درنهایت تابع() func_get_args همانطور که تعریف شد،برای تبدیل به آرایه به کار میرود.این تابع با تبدیل آرگومانهای دریافتی توسط تابع ()foo به آرایه با دستور( echo "Second argument is: " . func_get_arg(1 مقدار 2 را نمایش خواهد داد.چراکه پس از تبدیل آرگومانها به آرایه ایندکس مقدار 2 برابر با 1خواهد بود
موافقین ۳ مخالفین ۰ ۹۳/۰۲/۰۹
نویسنده

نظرات (۲)

با سلام
الان دقیقا این مطلب منظورش چیست؟
تابع فوو با 3 آرگومان فراخوانی شده در صورتی که در امضای این تابع هیچ پارامتری تعریف نشده است!
موضوع چیست؟
با تشکر
پاسخ:
سلام این مثال صرفا برای توضیح کارایی func_num_args() آورده شده است.
اصولا تا جایی که امکانش هست نباید اینگونه تابع تعریف کرد.
 وقتی از func_num_args() استفاده میشه بدون اینکه در بدنه تابع آرگومان رو تعریف کرده باشیم میتونیم از آرگومانها استفاده کنیم.درشرایطی که به طور مثال شارش آرگومانهای ما امکان پذیر نباشه.
یعنی   func_num_args() به صورت داینامیک پارامترها رو میگیره
string ConcatParams (params string[] words)
{
for(int i =0; i<params.count;i++)
//
//

}

در حقیقت کارکردی شبیه به کلمه ی کلیدی پارامز در سی شارپ دارد؛ درسته؟

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی