Я пытаюсь понять различие между этим:
if (isset($_POST['Submit'])) {
//do something
}
и
if ($_POST['Submit']) {
//do something
}
Мне кажется, что, если $ _POST ['Отправляют'], переменная верна, то это установлено. Почему мне был бы нужен isset () функция в этом случае?
Потому что
$a = array("x" => "0");
if ($a["x"])
echo "This branch is not executed";
if (isset($a["x"]))
echo "But this will";
(См. Также http://hk.php.net/manual/en/function.isset.php и http://hk.php.net/manual/en/language.types .boolean.php # language.types.boolean.casting )
Во втором примере PHP выдаст уведомление (на E_NOTICE
или более строго), если этот ключ не установлен для $ _ POST
.
Также см. этот вопрос о переполнении стека .
По сути, вы хотите проверить, была ли вообще отправлена переменная $ _POST [], независимо от значения. Если вы не используете isset (), некоторые отправления, такие как submit = 0
, завершатся ошибкой.
isset вернет TRUE, если он существует, и не NULL, в противном случае - FALSE.
Код
if($_POST['Submit'])
{
//some code
}
не будет работать в WAMP (работает на xampp)
на WAMP вам придется использовать
if (isset($_POST['Submit'])) {
//do something
}
попробуйте. :)