Проверьте, задано ли значение массива iset и имеет значение null
Как проверить переменную массива
$a = array('a'=>1, 'c'=>null);
установлен и имеет значение null.
function check($array, $key)
{
if (isset($array[$key])) {
if (is_null($array[$key])) {
echo $key . ' is null';
}
echo $key . ' is set';
}
}
check($a, 'a');
check($a, 'b');
check($a, 'c');
Возможно ли в PHP иметь функцию, которая будет проверять, является ли $a ['c'] пустой, и если существует $a ['b'] без ошибок "PHP Notice:..."?
Ответы
Ответ 1
Используйте array_key_exists()
вместо isset()
, потому что isset()
вернет false
, если переменная null
, тогда как array_key_exists()
просто проверяет, существует ли ключ в массиве:
function check($array, $key)
{
if(array_key_exists($key, $array)) {
if (is_null($array[$key])) {
echo $key . ' is null';
} else {
echo $key . ' is set';
}
}
}
Ответ 2
Вы можете передать его по ссылке:
function check(&$array, $key)
{
if (isset($array[$key])) {
if (is_null($array[$key])) {
echo $key . ' is null';
}
echo $key . ' is set';
}
}
check($a, 'a');
check($a, 'b');
check($a, 'c');
Не следует уведомлять
Но isset
вернет false
по нулевым значениям. Вместо этого вы можете попробовать array_key_exists