isset vs !empty

Walvarine

Новичок
Ребят скажу сразу что начал учить Php недавно и вот сбосно в чем суть вопроса:
isset - это проверка на наличие в переменной данных
empty - это проверка на отсутствие данных в переменной
если это я понял правильно то получается , что
действие isset == !empty .
И вот в чем вопрос:
почему
PHP:
<?php
require_once('conf.php');
if (!empty($title) && !empty($meta_d) && !empty($meta_k) && !empty($data) && !empty($description) && !empty($text) && !empty($author))
{
$res = mysql_query("INSERT INTO lessons (title,meta_d,meta_k,data,description,text,author) VALUES ('$title','$meta_d','$meta_k','$data','$description','$text','$author')",$db);
 
 if ($res == TRUE)
	{
		echo"Данные занесены успешно";
	}
 else
	{
		echo"Данные не добавлены";
	}


}
else {echo "Заполнены не все поля не все поля";}
?>
срабатывает как нужно , а

PHP:
<?php
require_once('conf.php');
if (isset($title) && isset($meta_d) && isset($meta_k) && isset($data) && isset($description) && isset($text) && isset($author))
{
$res = mysql_query("INSERT INTO lessons (title,meta_d,meta_k,data,description,text,author) VALUES ('$title','$meta_d','$meta_k','$data','$description','$text','$author')",$db);
 
 if ($res == TRUE)
	{
		echo"Данные занесены успешно";
	}
 else
	{
		echo"Данные не добавлены";
	}


}
else {echo "Заполнены не все поля не все поля";}
?>
игнорирует проверку и смело без зазрения совести заносит пустые поля в БД?
 

С.

Продвинутый новичок
isset - это проверка на наличие в переменной данных
то получается , что
действие isset == !empty
Нет, не правильно. isset проверяет наличие переменной. При этом она вполне может быть пустой.
 

baev

‹°°¬•
Команда форума
Walvarine, это совсем не «теория программирования», это — практический навык понимать прочитанное.
 

Фанат

oncle terrible
Команда форума
Walvarine
isset проверяет, есть ли у тебя карман.
empty проверяет - есть ли у тебя карман и есть ли в нем что-нибудь.

поэтому если тебя интересует, хватит ли тебе на пиво, то и проверять надо наличность, а не то, что у тебя в принципе есть карманы ;-)
 

Walvarine

Новичок
Спасибо за ответ, я тоже вчера прочитал разницу между ними.. наверно дурная привычка, сначала задать вопрос на форуме и тут же почитать сайт и найти ответ самому. По поводу раздела учту.
Фанат
интересный пример привел благодарю)
 

korpus

злой бобёр
Walvarine
isset проверяет, есть ли у тебя карман.
empty проверяет - есть ли у тебя карман и есть ли в нем что-нибудь.

поэтому если тебя интересует, хватит ли тебе на пиво, то и проверять надо наличность, а не то, что у тебя в принципе есть карманы ;-)
Не только. Если карман с дыркой (NULL), то isset() вернёт false :)
 
Сверху