פונקציות בשפת PHP 

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

יצירת פונקציות ב - PHP

הצורה הכללית להגדרת פונקציה בשפת PHP:

function function_Name()
{
  The function code;
}

כל פונקציה חייבת להתחיל במילה השמורה function (באדום בדוגמה) לאחר מכן יש לתת לפונקציה שם (בכחול בדוגמה). שמות של פונקציות צריכים להתחיל באחת מאותיות האלף בית האנגלי או בקו תחתי.  לאחר מכן יש ליצור בלוק של קוד המכיל את שורות הקוד שבתוך הפונקציה (בשחור בדוגמה). שורות הקוד שבתוך הפונקציה צריכיות להיות מוקפות בסוגריים מסולסלים (בירוק בדוגמה).

דוגמה לפונקציה פשוטה בשפת PHP

<?php
  function website_name()
  {
    echo "Devschool Israel!";
  }
 
  echo "The No. 1 site for web developers in Israel is ";
  website_name();
?>

תוצאת הסקריפט תהיה:

The No. 1 site for web developers in Israel is Devschool Israel!

בדוגמה למעלה יצרנו פונקציה ששמה website_name. פונקציה זו כותבת למסך את שם האתר. לאחר מכן אנו כותבים למסך את המסר: "The No. 1 site for developers in Israel is " ואז אנו קוראים לפונקציה שלנו (באדום למעלה). הקריאה לפונקציה מתבצעת על ידי כתיבת שם הפונקציה (בתוספת בוגריים עגולים).

פונקציות המקבלות ארגומנטים

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

הצורה הכללית להגדרת פונקציה המקבלת ארגומנטים

function function_Name($Arg1, $Arg2,,,$Argn)
{
  The function code;
}

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

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

דוגמה לשימוש בארגומנטים בפונקציה

<?php

function hello($firstName, $lastName)
{
  echo $firstName . " " . $lastName;
}

hello("Hello", "World");

?>

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

Hello World

יצירת פונקציות המחזירות ערך

פונקציות ב - PHP יכולות גם להחזיר ערך. כדי לאפשר לפונקציה להחזיר ערך נשתמש בביטוי "return".

דוגמה לפונקציה המחזירה ערך

<?php

function hello($firstName, $lastName)
{
  $msg = $firstName . " " . $lastName;
  return $msg
}

echo hello("Hello", "World");

?>

בדוגמת הקוד שלמעלה העברנו לפונקציה ששמה hello שני ארגומנטים. הפונקציה לקחה את שני הארגומנטים, חיברה אותם והציבה את הערך המתקבל במשתנה ששמו msg. לאחר מכן השתמשנו  בביטוי return (בכתום) ולאחריו המשתנה msg כדי להחזיר את הערך שבתוכו. ערך זה הדפסנו למסך גם כאן לאחר שנריץ את הסקריפט נקבל:

Hello World

פונקציות ריקורסיביות (Recursive functions)

פונקציה ריקורסיבית (Recursive functions) היא פונקציה הקוראת לעצמה. לכן, חשוב שפונקציה כזו תכיל תנאי כלשהו שיפסיק את הקריאה העצמית הזו ולא הפונקציה תמשיך לקרוא לעצמה שוב ושוב ללא הפסקה.

דוגמה לפונקציה ריקורסיבית

function recursion($No)
{
 if ($No <= 10) {
 echo "$No\n";
 recursion($No + 1);
}
}

recursion(1)

?>

אם נריץ סקריפט זה נקבל את התוצאה הבאה:

1 2 3 4 5 6 7 8 9 10

 


 
© 2010-2013  www.Devschool.co.il | מדיניות פרטיות | תנאי שימוש