آموزش توابع ناشناخته یا Anonymous functions در php

تاریخ: 15 فروردین 1400

توابع ناشناخته به ما اجازه می دهند تابعی داشته باشیم که نام ندارد. کلمه ی Anonymous به معنای ناشناخته می باشد.

این نوع توابع در php کاربردهای بسیاری دارند و گاهی اوقات هم برای سرعت در کدنویسی استفاده می شوند.

در واقع توابع ناشناخته زمانی استفاده می شوند که قرار است یک کار کوچک و با هدف مشخص را اجرا کنیم. در اینصورت استفاده از توابع معمولی بهینه نیست.

استفاده از Anonymous functions به عنوان callback توابع

بیشترین استفاده توابع ناشناخته زمانی است که باید به یک تابع، callback پاس دهیم.

echo preg_replace_callback('~-([a-z])~', function ($match) {
    return strtoupper($match[1]);
}, 'hello-world');
// outputs helloWorld

 

استفاده از Anonymous functions برای نسبت دادن به متغیر

استفاده مهم دیگر توابع ناشناخته، زمانی است که می خواهیم یک تابع را به متغیر نسبت دهیم:

$greet = function($name) {
    printf("Hello %s\r\n", $name);
};
$greet('Biawp.ir');
//output: Hello Biawp.ir

در دستور بالا هم از توابع ناشناخته استفاده کردیم و هم variable function.

استفاده از use در Anonymous functions

استفاده از یک متغیر خارجی به صورت مستقیم در Anonymous functions مجاز نمی باشد:

$name = 123;
$greet = function(){
    return $name;
};
echo $greet();
//output: Too few arguments to function

 

در این موارد، از کیورد use استفاده می کنیم که یک language construct نیز می باشد و متغیرهای خارج (از سطح دسترسی) را به آن پاس می دهیم:

$name = 123;
$greet = function() use ($name){
    return $name;
};
echo $greet();
//output: 123

 

 

 

 

دیدگاهتان را بنویسید