Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Warunek if - błędny wynik
Forum PHP.pl > Forum > Przedszkole
tolomei
Witam.
Znalazłem ten przykład na innej stronie, lecz nie znalazłem tam odpowiedzi.

  1. $a = '987654321123456789987654321123456789';
  2. $b = '987654321123456789876543210012345698';
  3. if($a==$b)
  4. echo 'Równe';
  5. else
  6. echo 'Nie Równe';


Powyższy kod wyświetli napis "Równe".
Dlaczego ?
crocodillo
Ponieważ przy porównywaniu są interpretowane jako liczby nie tekst, a ze względu że są zbyt duże taki wynik.
w takich przypadkach należy używać ===
cycofiasz
Zadziałało tu rzutowanie typów w php, użyj operatora === który nie zmieni typu zmiennych podczas porównania. Przy == porównuje zmienne jak liczby całkowite a że liczby te są bardzo duże to ich wartość jest ograniczana do maksymalnej wartości danego środowiska.

// Aby się o tym przekonać zrób taki eksperyment:

  1. $a = '987654321123456789987654321123456789';
  2. $b = '987654321123456789876543210012345698';
  3. echo (int) $a ,'<br />',(int) $b;
tolomei
Wszystko jasne smile.gif
Dzięki!
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.