Czy jest jakaś różnica między tym:
if (is_null($var)) {
...();
}
a tym:
if ($var === null) {
...();
}
Która forma jest lepsza przy sprawdzaniu, czy zmienna zawiera null? Czy są jakieś przypadki krawędzi, o których powinienem wiedzieć? (Inicjuję wszystkie moje zmienne, więc nieistniejące zmienne nie stanowią problemu).
Dzięki za pomoc! :)
1 odpowiedź
Pod warunkiem, że zmienna została zainicjowana (co wskazałeś - chociaż nie jestem w 100% pewien, czy ma to znaczenie w tym kontekście, czy nie. Oba rozwiązania mogą generować ostrzeżenie, jeśli zmienna nie została zdefiniowana), są funkcjonalnie takie same. Zakładam, że === byłby nieznacznie szybszy, ponieważ usuwa narzut wywołania funkcji.
To naprawdę zależy od tego, jak na to patrzysz
=== służy do ścisłego porównania danych. NULL ma tylko jedną „wartość”, więc działa to w porównaniu z NULL (która jest stałą PHP o zerowej „wartości”)
is_null sprawdza, czy zmienna jest typu danych NULL.
Tak naprawdę to od ciebie zależy, którą wybierzesz.