Menu
Coddy logo textTech

פונקציות משתנות

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

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

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

<?php
function sayHello() {
    echo "Hello World!";
}

$functionName = "sayHello";
$functionName();  // פלט: Hello World!
?>

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

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

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

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

challenge icon

אתגר

קל

צרו שלוש פונקציות: calculateArea שמקבלת שני מספרים (אורך ורוחב) ומחזירה את המכפלה שלהם, calculatePerimeter שמקבלת שני מספרים ומחזירה פי שניים מסכומם, ו־calculateDiagonal שמקבלת שני מספרים ומחזירה את השורש הריבועי של סכום הריבועים שלהם.

תקבלו שלוש קלטים: שם הפעולה ("area", "perimeter" או "diagonal"), האורך והרוחב. קראו את שלושת הקלטים, שמרו את שם הפונקציה במשתנה, קראו לפונקציה הזאת באמצעות תחביר של פונקציה במשתנה עם שתי המידות, והדפיסו את התוצאה.

תבנית הקלט: שלוש שורות — בשורה הראשונה מופיע שם הפעולה, בשורה השנייה מופיע האורך (מספר שיכול להכיל ספרות עשרוניות), ובשורה השלישית מופיע הרוחב (מספר שיכול להכיל ספרות עשרוניות)

הפלט הצפוי: תוצאת החישוב

נסו בעצמכם

<?php
// קראו את הקלטים
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));

// TODO: צרו כאן את שלוש הפונקציות (calculateArea, calculatePerimeter, calculateDiagonal)

// TODO: קראו לפונקציה המתאימה באמצעות תחביר של פונקציה משתנה ושמרו את התוצאה

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

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

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

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