Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd / bug w switch
Forum PHP.pl > Forum > Przedszkole
muk4
Może tego nie widzę, ale może mi ktoś wytłumaczyć czemu tekst w switch się pokazuje a z if nie, chociaż jest taki sam warunek?
btw. 0<0 == true?
  1. <?php
  2. $diff = 0;
  3.  
  4. switch($diff){
  5. case($diff < 0):
  6. echo 'Zero jest mniejsze niz zero, herp derp.';
  7. break;
  8. }
  9.  
  10. if($diff < 0){
  11. echo 'A to sie nie pokaze';
  12. }
  13. ?>
nospor
w CASE nie daje się zadnych warunków. Proponuje powrót do manuala i zapoznanie się z działaniem SWITCH

przenosze
zend
Wynikiem $diff < 0 jest bool - zero, wstaw zamiast "$diff < 0" zero to zrozumiesz czemu działa tak a nie inaczej.

Edit

podstaw sobie $diff = -1; to sytułacja się odwróci
muk4
@nospor
Właśnie w manualu znalazłem takie coś...
http://www.php.net/manual/pl/control-struc...witch.php#93342
http://www.php.net/manual/pl/control-struc...witch.php#88643



Teraz rozumiem.
nospor
Ale w komentarzach. a tam ludzie lubią pisać głupoty wink.gif
muk4
No tak, na początku też się zdziwiłem, ale jak więcej niż 1 post był na ten temat to myślałem że można.
nospor
No bo w sumie można. Tylko dla mnie akurat te przykłady z komentarzy to czysto akademickie przykłady by zaciemnić najbardziej jak się da prostą sprawę wink.gif
No i w Twoim przypadku im się udało - zaciemnili wink.gif
zend
Można, ale nie zalaca się, bo później debugowanie czegoś takiego jest bardzo uciążliwe, czego zresztą sam doświadczyłeś, przykład jest prosty, ale co jeśli błąd wystąpił by gdzieś w 500 liniowym strukturalnym pliku?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.