Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wartość NULL
DeyV
post 28.03.2003, 11:59:15
Post #1





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




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?


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
dragossani
post 28.03.2003, 13:07:38
Post #2





Grupa: Przyjaciele php.pl
Postów: 398
Pomógł: 0
Dołączył: --
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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.


--------------------
cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
Go to the top of the page
+Quote Post
LeWaR
post 28.03.2003, 16:27:02
Post #3





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 22.04.2002
Skąd: Szubin

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Jabol
post 28.03.2003, 17:48:34
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


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ć
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 04:16