'Will isset() return false if I assign NULL to a variable?

I mean... I "set" it to NULL. So isset($somethingNULL) == true?



Solution 1:[1]

Yes - from the ISSET() documentation:

$foo = NULL;
var_dump(isset($foo));   // FALSE

/* Array example */
$a = array ('test' => 1, 'hello' => NULL);

var_dump(isset($a['test']));            // TRUE
var_dump(isset($a['foo']));             // FALSE
var_dump(isset($a['hello']));           // FALSE

Solution 2:[2]

If you need to check if an array contains a key but its value is null, you can use array_key_exists

<?php

$array = [
    'qwe' => null,
    'foo' => 123,
];

var_dump(isset($array['foo']));            // bool(true)
var_dump(array_key_exists('foo', $array)); // bool(true)

var_dump(isset($array['qwe']));            // bool(false)
var_dump(array_key_exists('qwe', $array)); // bool(true) <---

var_dump(isset($array['bar']));            // bool(false)
var_dump(array_key_exists('bar', $array)); // bool(false)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 OMG Ponies
Solution 2 wowandy