Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]NULL, a ""
spokoloko123
post
Post #1





Grupa: Zarejestrowani
Postów: 114
Pomógł: 12
Dołączył: 15.02.2012

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


Mam jedno małe pytanie. Czy jest jakaś różnica między wartościami zmiennych NULL a "" (pusta zmienna).
Go to the top of the page
+Quote Post
crocodillo
post
Post #2





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


jest: var_dump(null==='');
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


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.
Go to the top of the page
+Quote Post
spokoloko123
post
Post #4





Grupa: Zarejestrowani
Postów: 114
Pomógł: 12
Dołączył: 15.02.2012

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


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?

Ten post edytował spokoloko123 2.03.2012, 20:42:17
Go to the top of the page
+Quote Post
crocodillo
post
Post #5





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


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
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
W kodzie NULL powinien być traktowany jako reprezentant nieokreśloności.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 19:37