Typy w PHP – null 😶

Null w świecie programowania czasem bywa podejrzany, a czasem mega przydatnym. Mimo wszystko jednak lepiej poznać null type. Zapraszam! 😉

🌄 Wprowadzenie

Tak może tajemniczo, a może swojsko? Porozmawiajmy poważnie o niczym i ja wiem, że to absurdalnie brzmi, no bo to nic, null. Co można powiedzieć o czymś co jest niczym?

W wielu językach programowaniach, a także w naszym PHP istnieje coś typu null i coś też może być nullable. No dobra, ale na co nam nic? No się okazuje że czasem jest potrzeba opisania czegoś jako nic. Prosty przykład: mamy pudełko czyli jakiś konkretny obiekt i może mieć coś w środku, ale może być puste.

Obrazowo mogę jeszcze przedstawić przykład z papierem toaletowym:

null vs undefined
Źródło: https://devrant.com/rants/2347874/null-vs-undefined

Jak to się okazuje niby takie nic, a jednak coś znaczy 😄

Aaa.. i jeszcze jedno. Bardziej niczym niż null jest undefined, bo null jest defined. No to tylko tak w ramach napomnienia, bo to ma być o null a nie o undefined 😉

⚪ Czym jest null?

Czym jest null?

Null jest typem jednostki. Oznacza to nie mniej nie więcej, że może mieć tylko i wyłącznie jedną wartość, którą w tym przypadku jest null. No taki akurat fart, że wartość i typ są takie same 😜

Aby utworzyć zmienną z typem null wystarczy do niej przypisać wartość:

No i co? To już? Mamy już to.. znaczy nic?.. No nie do końca. Teraz pasuje mi omówić kilka zagadnień powiązanych z nullem.

❓ Jak sprawdzić null?

Skrzyneczka z null

Dobrze że pytasz! 😁 Zanim zaczniemy, zróbmy sobie obiekt, który będzie przyjmował nullable, a dokładnie typ uni null|string – czyli wartości jakie takie zmienna może przyjąć to null albo ciąg znaków:

📗 Podstawy

Oczywiście domyślną wartością będzie null. Jak widać w przykładzie, wyświetlenie null nic nie daje więc jest ok. Przecież null to nic 😉

Zobacz jeszcze, że zapis ?string jest równoznaczny z zapisem null|string. Zapis z pytajnikiem jest bardziej uniwersalny, bo i też kompatybilny od wersji PHP 7.4 w górę.

Dobra, ale co teraz? No może my nie chcemy wyświetlać null i się zastanawiać czy tam jest czy nie? Skąd kto widzi wynik ma wierzyć na słowo że tam jest null, a nie pusty ciąg znaków? Hę? 🥸

No faktycznie i aby mieć pewność można sprawdzić „nullowalność” na kilka sposób:

Ale momento, jak to pusty napis to też null? O co biega? A no, bo null w PHP jest uważany za wartość falsy. W skrótowo to znaczy że null i false to to samo przy samym porównaniu wartości. Tak samo ma pusty string. To dokładnie omówię przy type boolean. Natomiast przygotowałem proste porównanie, aby wiedzieć na co uważać 😁

Zatem jeśli zależy ci na sprawdzeniu czy coś jest null i tylko null w typie i wartości to skorzystaj, albo potrójnego znaku = (czyli ===) aby sprawdzić wartość oraz typ lub użyj funkcji is_null. Wtedy będziesz mieć gwarant! ✔️

🧷 Nullsafe operator

Czasem bywa tak w programowaniu, że część własności obiektów jedno za drugie jest nullable. Kiedyś trzeba było to sprawdzać z osobno, każde jedno pod drugim tworząc „ifowe drzewko”.

Dzięki magicznemu znaku ? od wersji PHP 8.0 takie drzewka z ifem w roli głównej stały się zbędne.

🎾 Null Coalescing Operator

Ten operator można traktować jako skrót funkcji isset, która sprawdza czy dana zmienna nie jest nullem. Operator ten to dwa znaki pytajnika czyli ??. Jeżeli lewa strona operatora jest równa null to wynikiem operacji będzie prawa strona, w przeciwnym wypadku wynikiem będzie lewa strona.

Jak widać, jeśli pierwsza wartość to null wtedy używana jest ta druga za znakami ??

📝 Podsumowanie

To póki co tyle co mogę powiedzieć o niczym 😆 Jeśli jesteś zaawansowanym programistą i chcesz poznać dodatkowe zastosowania typu null to najlepiej jest się pouczyć wzorców projektowych i pozostałych zasad programowania

Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments
Włączyć powiadomienia? Bardzo pragnę Dam sobie radę