נגישות       נגישות
שינוי גודל טקסט:
א א א
שינוי צבעי האתר:
? מקשי קיצור:

לחיצה חוזרת ונשנית על המקש Tab תעביר אתכם בין הקישורים והאזורים השונים בעמוד.

הפעלת מקשי הקיצור תלויה בדפדפן שבו אתם משתמשים.

Internet Explorer, Chrome ובגרסאות ישנות של Firefox: לחצו על מקש Alt ועל מקש המספר או האות על-פי הרשימה. ב Firefox 3 ומעלה: לחצו על המקשים Alt + Shift + המספר או האות.

S - עבור לתוכן הדף
L - חיפוש
1- עמוד הבית
2 - פרוייקטים
3 - מדריכים
4 - אודות
5 - צרו קשר
6 - הצהרת נגישות
 

lambdas, closures ופונקציות אנונימיות ב-PHP

מחבר:
בתאריך:

lambda זה השם שבו מקובל לכנות פונקציה אנונימית ב-PHP, ופונקציה אנונימית היא פשוט פונקציה ללא שם.

לדוגמה:

function($name){
    return "hello $name";
};

שמתם לב שחסר לפונקציה שם. זו לא טעות זה מה שהופך אותה לפונקציה אנונימית. העובדה שאין לה שם.

 

איך קוראים לפונקציה אנונימית?

הבעיה של פונקציה ללא שם היא שלא ניתן לקרוא לה, והפתרון הוא להציב את הפונקציה האנונימית למשתנה.

לדוגמה:

$sayHi = function($name){
    return "hello $name";
};

ולאחר שהצבנו את הפונקציה האנונימית למשתנה, אנחנו יכולים בקלות להשתמש בפונקציה.

לדוגמה:

echo $sayHi("Chompi"); // hello Chompi 

מה זה? $ לפני שם הפונקציה? כן. זו לא טעות. כך משתמשים בפונקציה אנונימית.

ועכשיו אחרי שראינו כיצד להשתמש בפונקציה אנונימית (סליחה, למבדה) ב-PHP, נעשה היכרות עם האחיין המשוכלל יותר שלה, ה-closure.

 

מה זה closure?

closure הוא קודם כל פונקציה אנונימית, ולהבדיל מ-lambda הוא גם יכול לקבל משתנים מהחוץ באמצעות מילת המפתח use.

$bless = "have a nice day";
$sayHi1 = function($name) use($bless){
	return "hello $name, $bless";
};
echo $sayHi1("Chompi"); // hello Chompi, have a nice day

closure יכול להואיל במיוחד כשמשתמשים בפונקציות callback, דוגמת:
array_reduce, array_filter, array_map

בואו נראה דוגמה עם array_walk:

$names = array("Chompi","Enshem","Rega","Dodli");
array_walk($names, function($name){
	echo "hello, $name";
});

מערכת Laravel משתמשת באופן נרחב ב-closures במתודות העזר. לדוגמה, המתודה הבאה מחזירה את המחרוזת "ברוכים הבאים" למשתמשים שמגיעים לדף הבית.

Route::get('/', function()
{
    return 'Welcome home';
});

 

 

למדריכים נוספים בנושא של PHP , תכנות לרשת האינטרנט, ועוד.

הוסף תגובה חדשה

 

= 5 + 3