Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]dlaczego 0 jest interpretowane jako tekst
Forum PHP.pl > Forum > Przedszkole
Whitefire
Nie mogę pojąć, dlaczego nie działa mi kod:

  1. $mod_r = 0;
  2. if ($mod_r == "cos") { echo "cos"; }
  3. else { echo "nic"; }


(tzn wyświetla się "coś")

natomiast działa
  1. $mod_r = "cos";
  2. if ($mod_r === "cos") { echo "cos"; }
  3. else { echo "nic"; }


(wyświetla się "nic")

W szczególności chodzi mi o to, dlaczego w pierwszym przykładzie 0 jest interpretowane jako string 'coś'... Doedukować bym się potrzebował smile.gif
Crozin
Ponieważ przy porównywaniu tekst jest konwertowany do liczby. Ten zapis należałoby interpretować jako:
  1. if ($mod_r == (int) "cos")
Tekstu "cos" nie da się skonwertować do jakiejś sensownej liczby, więc przyjmowana jest wartość zero, a zero już zeru równe.
Whitefire
ok... w drugim przykładzie też miało być że $mod_r = 0, ale to już nic nie zmienia, wszystko jasne. 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.