[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка на undefined
zvezda_t
Всем привет!

Не ругайте за глупый вопрос, что то я запуталась...
Скажите, пожалуйста, как написать условие - на проверку - что переменная не определена?

Я всегда делала так: if(!isset(....))

Сейчас что то не пойму, в чем проблема:
У меня переменная $p['k'] может быть не определена, может принимать значение NULL или может принимать числовое значение.
Мне нужно выдать ошибку, только если переменная не определена.
А код ниже, выдает ошибку и в том случае, когда $p['k'] = NULL;
Подскажите, пожалуйста, как исправить?

$p['m'] = 1;

if($query->num_rows()>0)
{
$row = $query->row_array();
$p['k'] = $row['type'];
}

//обратила внимание, что независимо от того, есть результат запроса или нет
var_dump( $p['k']); //всегда выдает NULL - это нормально?

// выдает ошибку и в том случае, когда $p['k'] = NULL;

if(!isset($p['k']))
{
echo "error";
}


//пробовала так сделать:
if(empty($p['k']))
{
if(!is_null($p['k']))
echo "error";
}
//переменная не определена, а ошибка не выходит.


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
T1grOK
Цитата (zvezda_t @ 5.06.2014 - 03:42)
var_dump( $p['k']); //всегда выдает NULL - это нормально?

Нормально.
Цитата (zvezda_t @ 5.06.2014 - 03:42)
// выдает ошибку и в том случае, когда  $p['k'] = NULL;
if(!isset($p['k']))
{
    echo "error";
}

+ array_key_exists

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
zvezda_t
T1grOK, благодарю тебя!

if(!isset($p['k']) && !array_key_exists('k', $p) )
{
echo "error";
}


Работает, как надо! user posted image

_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
T1grOK
Вообще хватило бы и одного array_key_exists.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
kjdgh
соль в том, что NULL и "не определена" это одно и то же

_____________
Новичек в программировании и вообще не разбираюсь в этом, так что не вините.



bestxp
isset и array_key_exists отличается тем что

array('key' => null);

isset($array['key']) - вернет false
array_key_exists('key', $array) - вернет true

первый null считает отсутвием, второй проверяет есть ли ключ и не важно какое у него значение
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.