Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: czemu sa rowne ? i typ $_GET
Forum PHP.pl > Forum > Przedszkole
a79rtur
ponizszy skrypt daje mi w wyniku: rowne

  1. <?php
  2. $id=5;
  3. $id2=&#092;"5.\";
  4. if ($id==$id2) {
  5. echo 'rowne';
  6. }
  7. echo 'rozne';
  8. ?>


Dlaczego? Podejrzewam ze cos z typami zmiennych, bo jesli zamiast == dam === to wypisuje "rozne".
Jeszcze jedno pytanie , jakiego typu jest zmienna którą przekazuje w $_GET jesli np.
link wyglada tak : http://www.costam.pl/skrypt.php?id=5
Czy jest to tekst czy liczba ? Bo jesli do powyższgo skryptu w miejsce $id=5 dam $id=$_GET['id'] to skrypt także pokazuje mi ze sa one równe.
kszychu
Operator == porównuje zmienne tylko pod względem wartości. Jeżeli porównujesz coś, w Twoim przypadku string "5." to następuje rzutowanie, czyli konwersja tego stringa na liczbę całkowitą, gdyż drugi parametr jest liczbą całkowitą.
Operator === porównuje również typy obydwóch parametrów, tak więc wyświetla, że są one różne.
Dabroz
Cytat(a79rtur @ 2004-07-21 17:58:16)
jakiego typu jest zmienna którą przekazuje w $_GET jesli np.
link wyglada tak : http://www.costam.pl/skrypt.php?id=5
Czy jest to tekst czy liczba ?

Zauważ że zmienne w php nie mają określonego typu. (poza obiektami, ale to inna sprawa...)

5 jest w tym przypadku zarówno liczbą 5 jak i stringiem "5".
jbiz
gdzies w manualu byl taki fajny przyklad typu
$str1 = '5 swinek';
$str2 = '3 kaczki';
print $str1+$str2;

winksmiley.jpg
..:: pingu ::..
i wyswietli 8 zwierząt tongue.gif
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.