PHP-Проверка наличия или отсутствия индекса массива
есть ли способ проверить, является ли индекс массива существует или равно null?
isset()
не говорит вам, Существует ли индекс или нет, но является нулевым.
Если я это сделаю:isset($array[$index]) || is_null($array[$index])
это не сработает, потому что если индекс не существует, is_null аварийно завершит работу.
Как я могу проверить это, пожалуйста? Также есть способ проверить, существует ли что-то, независимо от того, установлено ли значение null или нет?
3 ответов
функции array_key_exists () может сделать это, и property_exists() для объектов, плюс то, что сказал Vineet1982. Спасибо за помощь.
Это очень хороший вопрос, и вы можете использовать get_defined_vars() для этого:
$foo = NULL;
$a = get_defined_vars();
if (array_key_exists('def', $a)) {
// Should evaluate to FALSE
};
if (array_key_exists('foo', $a)) {
// Should evaluate to TRUE
};
Это решит вашу проблему
самый простой, определенный в: http://php.net/manual/en/function.array-key-exists.php
<?php
$array=array('raja'=>'value', 'john'=>'value2');
$var='raja';
echo array_key_exists($var, $array);
?>