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

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

Daniel 29-05-07 14:09

שאלה-תנאים.
 
חשבתי על משהו.
אני אגיד לכם תנאי,

PHP קוד:

<?php
if($x == "1" && $y == "2" || $z == "3")
?>

אם תשימו לב, אפשר לקרוא את זה ב-2 דרכים, ואפילו יותר.

או שהחלק הראשון מתבצע,
PHP קוד:

$x == "1" && $y == "2" 

או שהחלק השני מתבצע,
PHP קוד:

$z == "3" 

ואפשר לקרוא גם ככה:

רק אם החלק הראשון מתבצע,
PHP קוד:

$x == "1" 

ושאחד מהתנאים הבאים יתבצעו
PHP קוד:

$y == "2" || $z == "3" 

מה נכון?
מה לא נכון(והביאו דוגמה איך לבצע את זה באופן נכון)?
מה מי מו?
אשמח לקבל תשובה/עזרה/תהייה לגבי שאלתי.

Udi 29-05-07 14:17

זה תלוי מה אתה רוצה,
ואתה צריך להשתמש בסוגריים...יותר נוח ופחות מבלבל.

BlueNosE 29-05-07 14:21

PHP קוד:

if ((($st1 == 1) or ($st2 == 0)) and (($st3 === 1) xor ($st4 !== 23)))
{



ככה אתה מצמצם.

עריכה: למקרה שזה לא ברור, && זה כמו and ו|| זה כמו or. אני לא חושב שקיים אופרטור לא מילולי לxor.

mlnn 29-05-07 14:32

קודם || יתבצע [אני מניח חח]

BlueNosE 29-05-07 14:39

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

Daniel 29-05-07 14:58

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

BlueNosE 29-05-07 15:13

יש לזה חוקים. נדמה לי של&& ול|| יש אותו מיקום בקדימות, ולכן זאת תהיה בעיה - יכול להיות שזה ילך משמאל לימין, אבל לא בטוח.

מידע:
http://php.net/operators
http://php.eitan.ac.il/main.php?id=00134

עריכה: ל&& יש קדימות על ||.. אז זה יהיה "אם (1 ו2) או 3" ולא "אם 1 ו(2 או 3)"

Daniel 29-05-07 15:22

הא, אוקע תודה.

וכן-אני יודע את הכל(בעצם אי אפשר לדעת את הכל ><),
סתם תהיתי בקשר לשאלה הזאת

wanksta 29-05-07 20:09

אפשר להשתמש בסוגריים במקום לשבור את הראש


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

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