+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 پاسخ 628 بازدید
0 امتیاز
1 پاسخ 499 بازدید
+1 امتیاز
2 پاسخ 404 بازدید
0 امتیاز
0 پاسخ 399 بازدید
0 امتیاز
1 پاسخ 7.3هزار بازدید
0 امتیاز
0 پاسخ 296 بازدید
0 امتیاز
0 پاسخ 330 بازدید
0 امتیاز
1 پاسخ 347 بازدید
...