در زبان های برنامه نویسی functional به این قابلیت First-class function یا Higher-order function می گویند. با استفاده از این قابلیت برنامه نویس می تواند با توابع نیز مانند متغییر ها رفتار کند و آنها را بعنوان پارامتر به یک تابع دیگر ارسال کرده و یا توابع را بعنوان مقدار بازگشتی یک تابع دیگر برگرداند.
در PHP وقتی در انتهای نام یک متغییر پرانتز باز و بسته قرار می گیرد (مانند func در مثال شما)، مفسر PHP بدنبال یک تابع با نام مقدار ذخیره شده درون آن متغییر می گردد (در مثال شما تابعی با نام echoit) و سپس سعی می کند آن تابع را با پارامترهای مورد نظر اجرا کند. مثال شما معادل کد زیر است:
function echoit($string)
{
//do somthing
}
$echoit('test');