Autor | Zpráva | ||
---|---|---|---|
Tomáš123 Profil |
#1 · Zasláno: 21. 6. 2014, 18:35:31
Zdravím,
Potreboval by som v mojom (asi) prvom jednoduchom skripte overiť, či sú tri premenné rovnaké. Dve porovnávam takto: if ($e == $f) { echo 'Trojuholníky sú podobné'; } else { echo 'Trojuholníky nie sú podobné'; } Avšak keď do podmienky uvediem if ($e == $f == $g) , prehliadač hlási chybu Parse error: syntax error, unexpected '==' (T_IS_EQUAL) in ...on line 11.
Vedeli by ste mi napísať, ako mám porovnať viac ako dve hodnoty. Ďakujem za ochotu. |
||
janbarasek Profil |
#2 · Zasláno: 21. 6. 2014, 18:39:29
Tomáš123:
Nemůžeš porovnávat 3 věci v rámci jednoho logického výrazu, musíš to rozdělit na podvýrazy. Na př.: <?php if ($e == $f && $e == $g) { } Alternativně lze zapsat i takto (je to možná lepší čitelné): <?php if ($e == $f and $e == $g) { } Obecnosti o podmínkách najdeš u mě na webu. |
||
juriad Profil |
$e == $f && $f == $g $e == $g zadávat nemusíš, ta vyplývá automaticky z tranzitivity (dokud porovnáváš čísla, jinak se to v PHP chová řekněme prazvláště)
|
||
Tomáš123 Profil |
juriad:
„$e == $f && $f == $g“ Prezradím ti tajomstvo: "Aj ja som to urobil tak ako ty". :-). janbarasek: Ďakujem za ukážku a vysvetlenie. Keď už sa pýtam tak ešte naložím: Toto je moje HTML: <form method="post" action="php/script.php"> <input type="text" name="a"> <input type="text" name="b"> <input type="text" name="c"> <hr> <input type="text" name="e"> <input type="text" name="f"> <input type="text" name="g"> <hr> <input type="submit" value="Submit"> </form> <?php $a = $_POST['a']; $b = $_POST['b']; $c = $_POST['c']; $e = $_POST['e']; $f = $_POST['f']; $g = $_POST['g']; $e/=$a; $f/=$b; $g/=$c; if ($e == $f and $f == $g) { echo 'Trojuholníky sú podobné'; } else { echo 'Trojuholníky nie sú podobné'; } ?> e " a "a " priradiť do inej premennej napríklad do $ea a nie do $e ? Teraz som to napísal tak, lebo inak som nevedel...
|
||
juriad Profil |
#5 · Zasláno: 21. 6. 2014, 19:05:24 · Upravil/a: juriad
Tomáš123:
No, ono je PHP bastl, $e == $f == $g by v rozumném jazyku prošlo (i když není jasné, co to má znamenat):
java: boolean a = false, b = false, c = false; boolean x = (a == b == c); # x bude false; uzávorkuje se to na ((a==b) == c) python: a,b,c = False, False, False x = (a == b == c) # bude True; vyhodnotí se jako ((a==b) and (b==c)) function pole() {return array(0,1,2,3);} echo pole()[1]; Že by: $ea = $e / $a; |
||
Tomáš123 Profil |
juriad:
Že by:...? Prosím, nechaj si tú iróniu, vážne som nevedel ako to urobiť. Ďakujem za radu. |
||
Jan Tvrdík Profil |
#7 · Zasláno: 21. 6. 2014, 20:12:39
Doplním, že
float y nelze porovnávat pomocí == . Je potřeba napsat něco jako abs($e - $f) < 1e-9
|
||
Časová prodleva: 10 let
|
0