פונקציות
Table of Contents
פונקציות המשתמש
פונקציה יכולה להיות מוגדרת על ידי שימוש בתחביר כגון:
Example#1 קוד מדומה שמדגים את השימוש בפונקציות:
<?php
function foo ($arg_1, $arg_2, ..., $arg_n)
{
echo "Example function.\n";
return $retval;
}
?>
כל קוד PHP חוקי יכול להופיע בתוך פונקציות, אפילו הגדרת פונקציה או מחלקה
בPHP3 פונקציות חייבות להיות מוגדרות לפני שמשתמשים בהם. בPHP4 המגבלה הזו בוטלה. למעט כאשר פונקציה מוגדרת בהתחשב בתנאי מסויים, כגון שני הדוגמאות המובאות למטה.
כאשר הגדרת פונקציה מותני, ההגדרה חייבת להופיע לפני השימוש בה.
Example#2 פונקציות מותנות
<?php
$makefoo = true;
/* We can't call foo() from here
since it doesn't exist yet,
but we can call bar() */
bar();
if ($makefoo) {
function foo ()
{
echo "I don't exist until program execution reaches me.\n";
}
}
/* Now we can safely call foo()
since $makefoo evaluated to true */
if ($makefoo) foo();
function bar()
{
echo "I exist immediately upon program start.\n";
}
?>
Example#3 פונקציות בתוך פונקציות
<?php
function foo()
{
function bar()
{
echo "I don't exist until foo() is called.\n";
}
}
/* We can't call bar() yet
since it doesn't exist. */
foo();
/* Now we can call bar(),
foo()'s processesing has
made it accessable. */
bar();
?>
PHP איננו מאפשר העמסה, כלומר הגדרה של פונקציה שנית על מנת לרמוס את ההגדרה הקודמת, כמו כן אין כל דרך לבטל הגדרת פונקציה או להחליף כזו.
Note: שמות פונקציות אינם רגישים לאותיות אנגליות גדולות או קטנות, למרות זאת תמיד טוב לכתוב את שמות הפונקציות כפי שהם מתועדות.
PHP3 לא תומך בקבלת מספר דינאמי של פרמטרים בתוך פונקציה, אולם הוא תומך בערך ברירת מחדל לפרמטר (ראה ערכי ברירת מחדל לפרטים נוספים). PHP4 תומך בשניהם. ראה: אורך משתנה לרשימת ארגומנטים והגדרות הפונקציה של func_num_args(), func_get_arg() ו func_get_args() לפרטים נוספים.