הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [שאלה] פונקציות בPHP (https://hosts.co.il/forums/showthread.php?t=52066)

inTouch 14-08-07 23:05

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

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

אשמח לקבל תשובה עם דוגמאות.
תודה מראש ולילה טוב לכולם :).

O-B 14-08-07 23:11

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

לדוגמה..
PHP קוד:

functon last_week ($time) {
return 
$time-604800;


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

השימוש:
PHP קוד:

$atime();
$last_w last_week($a); 

המשתמנה last_w יקבל את הערך שהפונקציה מחזירה..

inTouch 14-08-07 23:21

ובecho תכתוב $last_w כן?
וראיתי גם פונקציות ללא return, תוכל להסביר לי בבקשה בנוגע אליהן?

Tomer 14-08-07 23:23

return כעיקרון עוצר את הקוד ומחזיר את מה שאתה אומר לו.

לדוגמא:

PHP קוד:

function abcd($x) {
if (
$x == 1) return "this is one";
echo 
"hey";
}

$y abcd("1");
echo 
$y

יחזיר this is one ולא יבצע את ה echo השני.

inTouch 14-08-07 23:30

"return כעיקרון עוצר את הקוד ומחזיר את מה שאתה אומר לו."
הכוונה מחזיר כשאתה קורא לפונקצייה?
ועוצר כמו break ולא ממשיך לקרוא את שאר התכנים של הפונקצייה?

שאלה אחרונה:
$y = abcd("1");
הערך שבסוגריים זה בעצם הערך שמקבל המשתנה $x?


תודה רבה על העזרה.

DCB 15-08-07 04:15

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

דוגמא לפונקציה שמחזירה ערך
PHP קוד:

function printOut($x){ // הגדרנו פונקציה בשם printOut והיא מקבלת משתנה בשם x
   
if($x == true// אם x הוא אמת תחזיר This is true ותצא מהפונקציה
      
return "This is true!";
   return 
"This is wrong!"// אם התנאי לא התגשם תחזיר This is wrong ותצא מהפונקציה
}

echo 
printOut(true); // ידפיס אמת כי שלחנו לפונקציה שx הוא אמת
echo printOut(false); // ידפיס שקר כי שלחנו לפונקציה שx הוא שקר

$y printOut(true); // המשתנה y שווה את מה שהפונקציה מחזירה לו במקרה זה אמת כי שלחנו לפונקציה אמת
echo $y// ידפיס את תכולתו של המשתנה y, ידפיס אמת כי לפני רגע פנינו לפונקציה והיא החזירה אמת

$y prinOut(false); // המשתנה y שווה את מה שהפונקציה מחזירה לו במקרה זה שקר כי שלחנו לפונקציה שקר
echo $y// ידפיס את תוכלתו של המשתנה y, ידפיס שקר כי לפני רגע פנינו לפונקציה והיא החזירה שקר 


דוגמא לפונקציה שלא משתמשת בפונקציה return:
PHP קוד:

function printOut($x){ // הגדרנו פונקציה בשם printOut והיא מקבלת משתנה בשם x
   
if($x == true// אם x הוא אמת תדפיס This is true ותמשיך בפונקציה
      
echo "This is true!";
   echo 
"This is wrong!"// אם התנאי לא התגשם תדפיס This is wrong ותמשיך הלאה
}

printOut(true); // ידפיס This is true ומיד אחרי כן ידפיס This is wrong מאחר ולא אמרנו לפונקציה לעצור
printOut(true); // ידפיס This is wrong בלבד מאחר והתנאי הראשון לא מתגשם והפונקציה ממשיכה הלאה

$y printOut(true); // לא יתן לנו כלום מאחר והפונקציה לא מחזירה למשתנה שום דבר
$y prinOut(false); // לא יתן לנו כלום מאחר והפונקציה לא מחזירה למשתנה שום דבר 

שים לב שבדוגמא השנייה לא השתמשתי בecho לפונקציה מאחר והפעולה מתבצעת בתוך הפונקציה

inTouch 15-08-07 13:15

דוגמאות טובות, תודה רבה.
את הקוד הראשון הבנתי.
בנוגע לקוד השני, בשתי השורות האלו:
printOut(true);
printOut(true);

בטוח שבשורה השנייה לא התכוונת לFALSE? אחרת איך זה הגיוני [לפי מה שכתבת בהערות] שבפעם הראשונה זה ידפיס This is true ובפעם השנייה This is wrong?

וגם לא הבנתי מדוע שתי השורות האלו לא תחזיר דבר:
y = printOut(true);
y = printOut(false);


כל הזמנים הם GMT +2. הזמן כעת הוא 14:02.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ