![]() |
![]() ![]() |
![]() |
![]()
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..."
|
|
|
![]()
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
|
|
|
![]()
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 |
|
|
![]()
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; nie wypisze 'i to false'
if($i==false) print 'i to false!'; więc należy pamiętać, że php ma pewne ułatwienia, które powinno się zakceptować |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 04:16 |