آموزش توابع ناشناخته یا Anonymous functions در php
توابع ناشناخته به ما اجازه می دهند تابعی داشته باشیم که نام ندارد. کلمه ی 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