Задать вопрос
@arrexq

Для чего используют isset в if(isset($_POST['submit'])) {}?

Всем привет,никак не пойму для чего используют ф-цию isset() в if(isset($_POST['submit'])) { какие-то действия }
Сначала думал,что для того чтобы не выдавало ошибку,в случае,если обработка происходит на отдельной странице.Но так как в FALSE входит и NULL,получается что никакой ошибки быть не может.
Тогда для чего эта проверка на существование переменной нужна?Если false включает в себя null?
  • Вопрос задан
  • 22358 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 2
Inkognitoss
@Inkognitoss
Full-stack разработчик.
Как я понимаю, всё дело в том, что не всё то золото, блестит. И в вашей переменной не обязательно будет явный true. Переменная может существовать и с пустым значением или даже со значением false. Что вы будете делать тогда? Вот вам пример, который вроде бы показывает это. Вы только самостоятельно проверьте.
$var_test = 0;
var_dump($var_test);
if($var_test){
	echo('Не сработает');
}

if(isset($var_test)){
	echo('Отработает');
}
Ответ написан
@IPv4
Для того, чтобы если скрипту был передан $_POST['submit'], выполнять какие то конкретные действия.
if(isset($_POST['submit'])) {
    echo "submit\n";
}
echo "Hi";

При запуске этого скрипта будет выведено на экран:
Hi
Если запуск будет инициализирован из формы, где был отправлен $_POST['submit'], то выведется:
submit
Hi

php.net/manual/ru/function.isset.php
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@novrm
isset() — определяет, была ли установлена переменная значением отличным от NULL.

А если переменная вовсе не существует, тогда null не вернет, но выдаст ошибку.
Для этого существует is_null().
Основная цель isset - проверить существует ли переменная в принципе, например, дабы ее не переопределить.

$var = false;
unset($var);
echo isset($var) ? $var : 'no exist';
echo $var? $var : 'no exist';
Ответ написан
Комментировать
@dev400
а вы сделайте так

<?php
$a = null;
$b = false;
$c = 0;
if(isset($a)) {
    echo "1";
    echo "<br />";
    var_dump($a);
    echo "<br />";
}

if(isset($b)) {
    echo "2";
    echo "<br />";
     var_dump($b);
    echo "<br />";
}
if(isset($c)) {
    echo "3";
    echo "<br />";
     var_dump($c);
    echo "<br />";
}
if(isset($d)) {
    echo "4";
    echo "<br />";
     var_dump($d);
    echo "<br />";
}


и проверьте сами
Ответ написан
Комментировать
Например для того, чтобы не использовать в скрипте не объявленных переменных и не существующих ключей массива.

Генератор для безопасного получниея $_POST $_REQUEST $_GET $_COOKIE по ссылке: blog.ivru.net/issetgen.php
Например вводим имя: traLaLa
Выбираем $_REQUEST
Значение по-умолчанию указываем: ""
И ставим флаг htmlspecialchars

Результат работы генератора:
$traLaLa = "";
if (isset($_REQUEST["traLaLa"])) {
$traLaLa = htmlspecialchars($_REQUEST["traLaLa"]);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы