Forum und email

הפרמטרים המועברים לפונקציה (ארגומנטים)

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

PHP תומך בהעברת הערך של המשתנים (ברירת מחדל), העברה על פי מראה מקום, ו ערך ברירת מחדל לארגומנט. רשימות ארגומנטים משתנות נתמכות החל מPHP4 ואילך; ראה אורך רשימת ארגומנטים שאיננו קבוע ובתיעוד הפונקציות func_num_args(), func_get_arg(), ו func_get_args() לפרטים נוספים. אפשר להגיע לאפקט דומה על ידי העברת מערך המכיל מספר פרמטרים לפונקציה:

Example#1 העברת מערך לפונקציה

<?php
function takes_array($input)
{
    echo 
"$input[0] + $input[1] = "$input[0]+$input[1];
}
?>

העברת ארגומנטים על ידי מראה מקום (ריפרנסס)

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

אם ברצונך להעביר ארגומנט לפונקציה כריפרנס עליך להקדים לו אפרסנט (&) בהגדרת הפונקציה:

Example#2 העברת פרמטרים לפונקציות כריפרנס

<?php
function add_some_extra(&$string)
{
    
$string .= 'and something extra.';
}
$str 'This is a string, ';
add_some_extra($str);
echo 
$str;    // outputs 'This is a string, and something extra.'
?>

ערכי ברירת מחדל לארגומנטים

ערכי ברירת מחדל יכולים להיות מוגדרים כמו בC++:

Example#3 שימוש בערכי ברירת מחדל בפונקציה:

<?php
function makecoffee ($type "cappuccino")
{
    return 
"Making a cup of $type.\n";
}
echo 
makecoffee ();
echo 
makecoffee ("espresso");
?>

הפלט של הדוגמא נראה כך:

Making a cup of cappuccino.
Making a cup of espresso.
     

ערך ברירת המחדל חייב להיות ערך קבוע, לא (לדוגמא) משתנה, איבר מחלקה או קריאה לפונקציה.

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

Example#4 שימוש לא נכון בערכי ברירת מחדל

<?php
function makeyogurt ($type "acidophilus"$flavour)
{
    return 
"Making a bowl of $type $flavour.\n";
}
 
echo 
makeyogurt ("raspberry");   // won't work as expected
?>

הפלט של הדוגמא הוא כך:

Warning: Missing argument 2 in call to makeyogurt() in 
/usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
Making a bowl of raspberry .
     

עכשיו, השווה את הדוגמא שלמעלה עם הדוגמא הבאה:

Example#5 שימוש נכון בערכי ברירת מחדל

<?php
function makeyogurt ($flavour$type "acidophilus")
{
    return 
"Making a bowl of $type $flavour.\n";
}
 
echo 
makeyogurt ("raspberry");   // works as expected
?>

פלט הדוגמא הוא:

Making a bowl of acidophilus raspberry.
     

רשימת ארגומנטים באורך משתנה

PHP4 תומכת בהעברת רשימת פרמטרים באורך משתנה לפונקציות המוגדרות ע"י המשתמש. הנ"ל נעשה בפשטות ע"י שימוש בפונקציות הבאות: func_num_args(), func_get_arg(), ו func_get_args().

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