Jaka jest różnica między is_null ($ var) i ($ var === null)?

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.

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.