+1 امتیاز
قبل در برنامه نویسی توسط (922 امتیاز)
ویرایش شده قبل توسط

تکه کد زیر که برای فراخوانی یک Variable function است، برای من بسیار عجیب است:

$func = 'echoit';
$func('test');

Variable function ها در PHP و چه کاربردی دارند و چگونه تعریف می شود؟

1 پاسخ

+1 امتیاز
قبل توسط (1.1هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

در زبان های برنامه نویسی functional به این قابلیت First-class function یا Higher-order function می گویند. با استفاده از این قابلیت برنامه نویس می تواند با توابع نیز مانند متغییر ها رفتار کند و آنها را بعنوان پارامتر به یک تابع دیگر ارسال کرده و یا توابع را بعنوان مقدار بازگشتی یک تابع دیگر برگرداند.

در PHP وقتی در انتهای نام یک متغییر پرانتز باز و بسته قرار می گیرد (مانند func در مثال شما)، مفسر PHP بدنبال یک تابع با نام مقدار ذخیره شده درون آن متغییر می گردد (در مثال شما تابعی با نام echoit) و سپس سعی می کند آن تابع را با پارامترهای مورد نظر اجرا کند. مثال شما معادل کد زیر است:

function echoit($string)
{
    //do somthing
}

$echoit('test');

 

سوالات مشابه

0 امتیاز
1 پاسخ 647 بازدید
0 امتیاز
1 پاسخ 519 بازدید
+1 امتیاز
2 پاسخ 418 بازدید
0 امتیاز
0 پاسخ 414 بازدید
0 امتیاز
1 پاسخ 7.3هزار بازدید
0 امتیاز
0 پاسخ 314 بازدید
0 امتیاز
0 پاسخ 343 بازدید
0 امتیاز
1 پاسخ 364 بازدید
...