Menu
Coddy logo textTech

פונקציות callback

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 4 מתוך 68.

פונקציית callback היא פונקציה שמועברת כארגומנט לפונקציה אחרת. במקום לקרוא לפונקציה מיד, מעבירים את שמה כדי שהפונקציה שמקבלת אותה תוכל לקרוא לה מאוחר יותר, בעת הצורך.

כדי להעביר פונקציה כ־callback, פשוט משתמשים בשם הפונקציה כמחרוזת:

<?php
function greet($name) {
    echo "Hello, " . $name . "!";
}

function processUser($username, $callback) {
    // בצע עיבוד כלשהו...
    $callback($username);  // קרא לפונקציית ה-callback
}

processUser("Alice", "greet");  // פלט: Hello, Alice!
?>

בדוגמה הזאת, "greet" מועברת כפונקציית callback אל processUser(). לאחר מכן, הפונקציה processUser() קוראת ל-callback באמצעות המחרוזת כשם של פונקציה.

פונקציות callback שימושיות להפליא, כי הן הופכות את הפונקציות שלך לגמישות יותר. אותה פונקציה יכולה לבצע פעולות שונות, בהתאם לפונקציית ה־callback שמעבירים לה. המושג הזה הוא יסודי ברבות מהפונקציות המובנות של PHP, כמו array_map() ו־array_filter(), שתפגוש בהמשך הקורס הזה.

challenge icon

אתגר

קל

צרו שתי פונקציות: אחת בשם formatUppercase שמקבלת מחרוזת ומחזירה אותה באותיות גדולות, ואחרת בשם formatLowercase שמקבלת מחרוזת ומחזירה אותה באותיות קטנות.

לאחר מכן צרו פונקציה בשם applyFormat שמקבלת שני פרמטרים: מחרוזת טקסט ושם של פונקציית callback. הפונקציה הזו צריכה להפעיל את פונקציית ה-callback על הטקסט ולהחזיר את התוצאה.

תקבלו שתי קלטים: סוג הפעולה ("upper" או "lower") והטקסט שיש לעצב. קראו את שני הקלטים, קבעו באיזו פונקציית callback להשתמש בהתאם לסוג הפעולה, קראו ל-applyFormat עם פונקציית ה-callback המתאימה, והדפיסו את התוצאה המעוצבת.

פורמט הקלט: שתי שורות - השורה הראשונה מכילה את סוג הפעולה ("upper" או "lower"), והשורה השנייה מכילה את הטקסט שיש לעצב

הפלט הצפוי: הטקסט המעוצב בהתאם לסוג הפעולה

נסו בעצמכם

<?php
// קראו את הקלט
$operation = trim(fgets(STDIN));
$text = trim(fgets(STDIN));

// TODO: כתבו את הקוד שלכם למטה
// צרו את הפונקציה formatUppercase
// צרו את הפונקציה formatLowercase
// צרו את הפונקציה applyFormat
// קבעו באיזו פונקציית callback להשתמש לפי סוג הפעולה
// קראו לפונקציה applyFormat עם פונקציית ה-callback המתאימה

// הציגו את התוצאה
echo $result;
?>
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר PHP אונליין