+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 پاسخ 726 بازدید
0 امتیاز
1 پاسخ 600 بازدید
+1 امتیاز
2 پاسخ 506 بازدید
0 امتیاز
0 پاسخ 461 بازدید
0 امتیاز
1 پاسخ 7.5هزار بازدید
0 امتیاز
0 پاسخ 384 بازدید
0 امتیاز
0 پاسخ 401 بازدید
0 امتیاز
1 پاسخ 434 بازدید
...