یکی از مفاهیم پرکاربرد و پیچیده در زبان php ، مبحث closure ها هستند که ما در این آموزش با انواع مثال ها ، آن را واضح تر و قابل درک تر میکنیم.
Anonymous functionچیست؟
به مثال زیر توجه کنید:
$example =
function ()
{ echo 'hello'
; }
به چنین توابعی که نام ندارند و داخل یک متغیر ذخیره میشوند Anonymous function می گویند.
closure چیست؟
یک تابع از جنس Anonymous function است با این تفاوت که میتواند وضعیت محیط اطراف را ضبط کند به مثال زیر توجه کنید:
$message = 'hello';
$example = function () use ($message) {
echo $message
;
}
;
در مثال بالا ما با استفاده از کلید use متغیر message را برای استفاده ی بعدی ضبط میکنیم .
نتیجه گیری : هر closuer یک anonymouse fucntion هست اما هر anonymouse function الزاما یک closuer نیست.