PHP/פונקציות

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
< PHP

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

תחביר[עריכה]

הגדרת פונקציה[עריכה]

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

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

דוגמא:

function funcName()
{
	//tab מומלץ להזיח את תוכן הפונקציה ע"י לחיצה על
}

קריאה לפונקציה[עריכה]

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

function funcName($a, $b)


{
	echo 'this function is ok!';
}

funcName();

הקוד הבא מגדיר פונקציה וקורא לה, ככה שהפלט של הקוד הוא: !this function is ok

משתנים[עריכה]

המשתנים בפונקציה "שונים" משאר המשתנים בתוכנה, ככה שהקוד הזה:

$var = 'I am a text';

function printMyVar()
{
	echo $var;
}

printMyVar();

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

$var = 'I am a text';

function printMyVar()
{
	global $var;
	echo $var;
}

printMyVar();

הפלט של הקוד יהיה: I am a text

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

ארגומנטים[עריכה]

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

ארגומנטים הם משתנים מסוימים שנמצאים בתוך הסוגריים של הפונקציה, כאשר קוראים לפונקציה, לעיתים מכניסים באותה קריאה לפונקציה ארגומנטים מסוימים, מגדירים אותם גם בהגדרה לפונקציה, לדוגמא, אני רוצה פונקציה שתדפיס לפלט באופן בולט, אני לא רוצה שהיא תדפיס Hello world או משפט קבוע בכל זמן שיקראו לפונקציה, במקרה זה הדרך הפשוטה ביותר היא להישתמש בארגומנט כך:

function printInBold($myString)
{
	echo '<b>'.$myString.'</b>';
}

printInBold('my arm is painfull');

התוצאה תהיה my arm is painfull

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

החזרת ערך[עריכה]

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

$len = strlen('abcd');

echo $len;

הפלט של הקוד יהיה 4.

איך עושים את זה? ע"י הפקודה return אחריה רווח ואז את הערך שיכול להיות מספר, מחרוזת או משתנה, ממש כך:

function metchArg($a, $b)
{
	if($a > $b)
		return $a;
	elseif($b > $a)
		return $b;
	else
		return 0;
}

$myMetch = metchArg(5, 2);
echo $myMetch;

הפלט למסך יהיה 5.


הפרק הקודם:
לולאות
פונקציות הפרק הבא:
פלט HTML עם PHP