Я пытаюсь понять разницу между этим:
if (isset($_POST['Submit'])) { //do something }
а также
if ($_POST['Submit']) { //do something }
Мне кажется, что если переменная $ _POST ['Submit'] имеет значение true, она устанавливается. Зачем мне нужна функция 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 )
isset вернет TRUE, если он существует и не является NULL, в противном случае FALSE.
В основном вы хотите проверить, была ли вообще указана переменная $ _POST [], независимо от значения. Если вы не используете isset (), некоторые представления, такие как submit=0
, не будут выполнены.
Во втором примере PHP выдает уведомление (на E_NOTICE
или более строгий), если этот ключ не установлен для $_POST
.
Также см. Этот вопрос о переполнении стека .
Код
if($_POST['Submit']) { //some code }
if($_POST['Submit']) { //some code }
не будет работать в WAMP (работает на xampp)
на WAMP вам придется использовать
if (isset($_POST['Submit'])) { //do something }
if (isset($_POST['Submit'])) { //do something }
попробуй. 🙂
если пользователь не вводит значение, поэтому $ _post [] возвращает NULL, который мы говорим в описании isset: "
isset вернет TRUE, если он существует и не является NULL, в противном случае это FALSE., но здесь iset возвращает true "