פונקציות הם חלק חשוב מתוכנית ועוזרים להבנת התוכנית ולכתיבתה. הגדרת פונקציה ב-PHP נראית כך:
<?php function
/*
המילה השמורה שבאמצעותה מצהירים על הגדרת פונקציה.
*/
func_name
/*
שם הפונקציה. צריך להיות שם חוקי כשל משתנה.
*/
($arg_1,$arg_2,...,$arg_n
/*
ארגומנטים. רשימת המשתנים בהם אנו שומרים את הפרמטרים המועברים לפונקציה.
*/
) { ... function_body_statements; ...
/*
גוף הפונקציה. הקוד שאנו מבצעים כאשר קוראים לפונקציה.
*/
} ?>
שם של פונקציה הוא כשם של משתנה. כשמגדירים פונקציה חייבים לכתוב function לפני שם הפונקציה. אחרי שם הפונקציה יבואו סוגריים עגולים שבתוכם יהיו שמות הארגומנטים. גוף הפונקציה בא בתוך בלוק ובו ניתן לכתוב כל קוד שהוא. כדי לקרוא לפונקציה כותבים את שם הפונקציה ולאחריו סוגריים עגולים שיכילו את הפרמטרים שמעבירים לפונקציה.
echo "calling to the function func():<BR>"; func();
/*
קריאה לפונקציה ששמה func, ללא העברת פרמטרים לפונקציה.
*/
?>
לא ניתן לשכתב פונקציות או למחוק פונקציות אחרי שהגדרנו את הפונקציה. ב-PHP3 לא ניתן להשתמש בפונקציה לפני שמגדירים אותה, אך לא כך הדבר ב-PHP4. הגרסה השלישית של PHP תומכת בערכי ברירת מחדל של ארגומנטים, אך אינה תומכת במספר משתנה של ארגומנטים לפונקציה, ואילו PHP4 תומכת בשניהם.
תגובות בנושא
בעיה
01-11-02 10:01 איתי
#549
לא ידעתי איפה בדיוק לרשום את זה אז רשמתי את זה פה...
איך אפשר להגדיר משתנה בתוך פונקציה, ולהשתמש בו מחוצה לה?
לדוגמה
<?
function cs($ptd,$title)
{
$ptd = "$ptd ".$title."<br>";
$ptext = "א";
}
כל משתנה המוגדר בפונקציה כלשהי שייכת אך ורק לתחום ההגדרה של הפונקציה. למשל, אם יש לך משתנה X מחוץ לפונקציה, ובפונקציה עצמה אתה מגדיר משתנה X, אז המשתנה בפונקציה שייך רק לתחום ההגדרה של הפונקציה עצמה, והיא לא המשתנה X שהוגדר מחוץ לפונקציה. (דבר זה נקרא "תחום הגדרה").
הדרך להעביר לפונקציה משתנים מבחוץ היא דרך הארגומנטים.. כדי ששינוי ערך בתוך הפונקציה יתפוס גם מחוצה לה, יש צורך להעביר את המשתנה לפי ייחוס (be reference) ע"י כך ששמים את הסימן & לפני הארגומנט. ראה את הפרק הבא - ארגומנטים.
הפונקציה גם יכולה להחזיר ערכים. ראה את הפרק - החזרת ערך.
Over loading
31-10-03 03:01 אופיר
#1179
האם ניתן להגדיר מספר פונקציות עם אותו השם כאשר מה שמבדיל בין הפונקציות הללו זה מספר שונה של ארגומנטים או סוג שונה של ארגומנטים
overlapping
31-10-03 17:01 אלי חן (מנהל)
#1208
ב-PHP לא ניתן להגדיר 2 פונקציות בעלות שם זהה עם מספר או סוג אחר של משתנים.
הפונקציה str_replace
02-11-05 13:01 חנה אסודרי
#2644
מה הפונקציה str_replace מבצעת?
אילו פרמטרים מקבלת? ומה מחזירה הפונקציה?
תודה מראש
כיאלו...
06-12-09 13:00 אלכס נוסינוב
#2841
כיאלו הארגמנטים שיהיה בפונקציה לא יהיו קשורים לאלה שמחוץ לפונקצייה?