![]() |
שאלה על תנאים בPHP
ב"ה
יש דבר כזה: PHP קוד:
|
ציטוט:
PHP קוד:
|
ב"ה
אם הבנתי אותך נכון-סוגריים נותנות קדימות לבדיקת תנאים. תודה על הרעיון וגם מעניין לשמוע מה התשובה לשאלה שלי, אז אם משהוא יודע... |
אם גם $a==1 וגם $b==2 הוא יבצע את מה שאתה רוצה. אם רק אחד מהם הוא נכון והשני לא אז הוא לא יבצע את מה שאתה רוצה.
אם הוא נכנס לתנאי, והתנאי הראשון לא נכון, הוא יבדוק גם את השני. |
בניה כמו שאמר תומר,עושים את זה בהדרגתיות...
PHP קוד:
|
&& - שני התנאים צריכים להיות שווים...
OR - מספיק תנאי אחד וזזה יבצע את זה... |
ב"ה
לא הבנתם מה שאלתי. נכון שב&& חייבים ששני התנאים יתקיימו? אז אם הראשון לא מתקיים אז אין צורך לבדוק את השני כי מימילא הראשון לא התקיים נכון? השאלה היא אם PHP בודקת בכל זאת גם את השני. |
ציטוט:
לא נראה לי שבכלל אפשר לבדוק את זה. יש לך איזה השוואה רצינית שאם הראשון לא טוב אז אתה לא רוצה שזה יבדוק את השני ואתה רוצה להיות בטוח שזה יהיה ככה?...תשתמש בשני ifים... |
תראה בניה
זה לא משנה AND - 1 1 OR - 0 1 / 1 1 / 1 0 XOR - 1 0 / 0 1 זה אומר שזה ממש לא משנה סדר הבדיקה. ברגע שבAND אחד הביטויים יחזיר 0 הביטוי פסול.. אבל לשאלתך- PHP בודקת קודם כל את הביטוי משמאל. |
בניה ברגע שאתה עושה את הסימון של "וגם" - && הוא בודק אם
קוד:
$a==1 קוד:
$b==2 הרי הראשון לא מתקיים, אז הוא לא נכנס לתנאי כלל. |
ב"ה
נכון שאין לו טעם לבדוק גם את שני הרי מימילא הAND לא יתקיים השאלה היא האם הוא באמת לא בודק גם את השני? וזו השאלה. |
תגיד מה זה משנה אם הוא בודק או לא? הריי מילא אם אחד לא מתאים אז התנאי לא יתקיים...מה אכפת לך מקסימום יבדוק עוד משתנה אחד...
|
התנאי שכתבת יבדוק בעצם אם $a שווה למה שגדרת ואם $b שווה למה שהגדרת.
כל הקטע עם &&, שאם אחד מהתנאים המצויינים ($a שווה לx ו$b שווה לy) לא מתאים למה שאתה מנסה לבדוק, הוא יחזיר FALSE. בשביל זה משתמשים ב ||, שלמרות שאחד מהתנאים מחזיר ערך לא נכון (FALSE) הוא בעצם עדיין יחזיר שכל הIF הוא TRUE. מקווה שעזרתי לך, אם לא, מצטער :) |
Atom-bomb, אם היית מתכנת בצוות שלי הייתי מעיף אותך. לך תעשה לך 5 פקודות IF כשכל אחת מהן לוקחת לפחות שתי שורות (פתיחה וסגירה) ומצאת לעצמך חתיכת קוד מכוער + בלתי יעיל וקשה לתחזוק.
בקשר לשאלה המקורית - ביטויים בתוך הסוגריים ייבדקו לפני האופרטורים. |
ציטוט:
|
ב"ה
לא נראה לי שהבינו אותי. אני אנסה לבדוק את זה בעצמי. תודה לכל מי שניסה. |
ציטוט:
ולהמחשה: PHP קוד:
PHP קוד:
|
ומכאן נובע שהמשפט הראשון שרציתי לרשום נכון.
PHP קוד:
|
ציטוט:
|
ב"ה
השאלה שלי היא אם התנאי הראשון לא מתקיים והאפורטור הוא && אז התנאי השני גם יבדק? לא ענו לי במדויק על השאלה. |
למה שלא תבדוק את זה?
PHP קוד:
אם לא, אז... כנראה שהוא עוצר :) |
כל הזמנים הם GMT +2. הזמן כעת הוא 17:19. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ