Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wartość NULL
Forum PHP.pl > Forum > PHP
DeyV
php teoretycznie zakłada, że Specjalna wartość NULL oznacza, że zmienna nie przechowuje żadnej wartości. NULL jest jedyną możliwą wartością typu NULL.
Jednak moja testy wskazują, że Null == 0 (php 4.3.0)
Dopiero Null !== 0 , czyli php zauważa różnicę na poziomie typów.
Czy to błąd mojej wersji php, czy też tak być powinno?
dragossani
Istnieje różnica typów między 0 a NULL, ale pamiętaj o stosowanej przez php konwersji typów w locie. NULL==0 to prawda, ale NULL===0 to już nieprawda (tak myślę, ale za chwilę to sprawdzę). W pierwszym przypadku nastąpi konwersja NULL na 0 przy porównywaniu, bo operator == nie wymaga zgodności typów.
LeWaR
NULL to NULL, nic. Natomiast 0 jest wartością. Jeśli $zmienna=NULL znaczy, że nie jest nic przypisane do zmiennej, natomiast gdy $zmienna=0 to jej wartość jest liczbą zero, a to jest mniej więcej pośrodku skali -jesli chodzi o liczbe ze znakiem;

Pozdrawiam
LeWaR
Jabol
Jeżeli w php jakaś zmienna ma wartość tzw zerową, to zwraca false
Kod
$zmienna=null;

$zmienna=0;

$zmienna=false;

$zmienna='';

Wszystkie powyższe przypisania są zerowe, gdyż nie zawierają wartości, lub są one zerowe; np kod
Kod
<pre><?php

$zmienna=null;

print_r($zmienna);

$zmienna=0;

print_r($zmienna);

$zmienna='';

print_r($zmienna);

$zmienna=false;

print_r($zmienna);

?></pre>

daje mi taki wynik(php 4.3.0)
<pre>0</pre>
Tak więc podsumowując php ma nullfullsupport, a dodatkowo wartość ta zwraca false;
Cytat
Jednak moja testy wskazują, że Null == 0 (php 4.3.0)
Dopiero Null !== 0 , czyli php zauważa różnicę na poziomie typów.

ale czyż kod
Kod
$i=0;

if($i==false) print 'i to false!';
nie wypisze 'i to false'
więc należy pamiętać, że php ma pewne ułatwienia, które powinno się zakceptować
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.