Forum und email

פונקציות

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 ($makefoofoo();

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() לפרטים נוספים.