+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 پاسخ 522 بازدید
0 امتیاز
1 پاسخ 382 بازدید
+1 امتیاز
2 پاسخ 256 بازدید
0 امتیاز
0 پاسخ 255 بازدید
0 امتیاز
1 پاسخ 1.2هزار بازدید
0 امتیاز
0 پاسخ 258 بازدید
0 امتیاز
0 پاسخ 222 بازدید
0 امتیاز
1 پاسخ 251 بازدید
...