[PHP] wartość NULL

0

zastanawia mnie po co jest w php wartość NULL. Czy poprawny jest taki zapis:

<?php $zmienna=NULL; $zmienna.='asdf'; ?>

czy lepiej zadeklarowac pusty string ''?
W prawdzie server dopuszcza obie mozliwosci, ale pan hacker nie musi :-/

0

NULL określa stan, w którym zmienna wskazuje "na nic". Zmienna, która wskazuje na pusty string wskazuje już na coś konkretnego choć w naszego ludzkiego punktu widzenia pustego. Znacznie lepszym przykładem na pokazanie różnicy pomiędzy NULL i pustym stanem są zmienne liczbowe. Załóżmy, że funkcja ma zwracać liczbę naturalną większą od 0 na podstawie podanego parametru.
Jeżeli funkcja zwróci nam NULL to wiemy, że parametr jest nieprawidłowy. Jeżeli jednak otrzymamy liczbę mniejszą równą 0 lub liczbę zmiennoprzecinkową to nie wiemy i bez dokładnego przejrzenia kodu funkcji nie jesteśmy wstanie stwierdzić czy parametr jest błędny czy też funkcja jest źle napisana.

0

w php NULL==0==''==False. (Ale nie ===)

0

i taka mała pułapka:

$zmienna = NULL

jest bardziej "kasujące" niż

unset($zmienna)

to drugie usuwa tylko referencję (coś a'la wskaźnik)

edit:
a co do tematu - zapis jest poprawny, ponieważ w drugiej linijce nastąpi niejawne rzutowanie typów

ponadto (tak mi się przynajmniej wydaje), że NULL od stringa, czy inta różni się przede wszystkim wielkością - NULL musi przechować tylko typ (void), string typ, dlugosc i wartosc (ew. jak w C typ, wartosc i \0), a int typ i wartosc.

co do pytania - lepiej zadeklarowac pusty string - a co, jak w PHP7 niejawne rzutowanie będzie wywalalo warningi ;). Takie cos jest nieestetyczne i mylące

0

aha, juz wiem ze jak operuje na stringach to mam sie trzymac typu.
Ale co do tego kasowania, czy bezpiecznie jest usz

1 użytkowników online, w tym zalogowanych: 0, gości: 1