Зачем нужна функция isset () в php?

Я пытаюсь понять разницу между этим:

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 "