array_key_exists
funkcja
Sprawdza, czy podany klucz istnieje w tablicy. Zwraca true nawet gdy wartość to null.
array_key_exists(string|int $key, array $array): bool
array_key_exists zwraca true, jeśli $key istnieje w tablicy $array, niezależnie od wartości przypisanej do tego klucza — nawet gdy wynosi null. To kluczowa różnica w porównaniu do isset(), które zwraca false dla kluczy z wartością null.
Używaj array_key_exists, gdy interesuje cię samo istnienie klucza, a isset — gdy zależy ci na tym, by wartość była jednocześnie różna od null. Przydaje się np. przy obsłudze danych formularza, gdzie pole może być jawnie ustawione na pusty ciąg lub null.
<?php
declare(strict_types=1);
$produkt = ['nazwa' => 'laptop', 'cena' => 3499.99, 'rabat' => null];
var_dump(array_key_exists('cena', $produkt)); // wynik: bool(true)
var_dump(array_key_exists('rabat', $produkt)); // wynik: bool(true)
var_dump(array_key_exists('kolor', $produkt)); // wynik: bool(false)
// isset zwróci false dla klucza z wartością null:
var_dump(isset($produkt['rabat'])); // wynik: bool(false)