Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]NULL, a ""
Forum PHP.pl > Forum > Przedszkole
spokoloko123
Mam jedno małe pytanie. Czy jest jakaś różnica między wartościami zmiennych NULL a "" (pusta zmienna).
crocodillo
jest: var_dump(null==='');
Crozin
1. NULL może być generalnie postrzegany jako specjalny typ (taki jak integer, double czy boolean) wartości zmiennej. "" to nie jest pusta zmienna, tylko zwykła zmienna tekstowa (string), która składa się z zera znaków. Określenie "pusta zmienna" czy "zmienna o niezdefiniowanej wartości" pasuje do NULL-a.
2. PHP jest językiem z dynamicznym typowaniem zmiennych przez co NULL, false, "", 0 czy 0.0 są bardzo często traktowane jako to samo (więcej na ten temat w manualu), nie mniej jednak nie można tych typów traktować jako identycznych (stąd chociażby operatory === i !== uwzględniające również typ zmiennych).
3. W kodzie NULL powinien być traktowany jako reprezentant nieokreśloności. Pusty tekst ("") powinien pojawiać się wyłącznie wtedy gdy mamy do czynienia konkretnie z tekstem.
spokoloko123
No ok, rozumiem.

Uczę się php i mam w klasie takie coś:
  1. class SimpleMail {
  2. public $to = NULL;
  3. public $cc = NULL;
  4. public $bcc = NULL;
  5. public $from = NULL;
  6. public $subject = "";
  7. public $body = "";
  8. public $htmlbody = "";
  9. [...]}


Wszystkie te zmienne dotyczą tekstu. Dlaczego więc autor użył NULL? Żeby pokazać, że też się da?
crocodillo
Cytat(spokoloko123 @ 2.03.2012, 20:41:46 ) *
No ok, rozumiem.

Uczę się php i mam w klasie takie coś:
  1. class SimpleMail {
  2. public $to = NULL;
  3. public $cc = NULL;
  4. public $bcc = NULL;
  5. public $from = NULL;
  6. public $subject = "";
  7. public $body = "";
  8. public $htmlbody = "";
  9. [...]}


Wszystkie te zmienne dotyczą tekstu. Dlaczego więc autor użył NULL? Żeby pokazać, że też się da?


Widocznie miał taką potrzebę, na pewno nie dlatego, żeby pokazać, że tak się da. Domyślam się, że NULL po to, żeby w dalszej części skryptu sprawdzić, czy zostały tym zmiennym przypisane jakieś wartości
Crozin
Cytat
W kodzie NULL powinien być traktowany jako reprezentant nieokreśloności.
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.