13

私はこれの違いを理解しようとしています:

if (isset($_POST['Submit'])) { 
  //do something
}

if ($_POST['Submit']) { 
  //do something
}

$_POST['Submit'] 変数が true の場合、それが設定されているように思えます。この場合、なぜ isset() 関数が必要なのですか?

4

6 に答える 6

20

なぜなら

$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 )

于 2010-03-17T06:38:45.677 に答える
4

isset は、存在する場合は TRUE を返し、NULL でない場合は FALSE を返します。

于 2010-03-17T06:38:49.580 に答える
3

基本的に、値に関係なく、 $_POST[] 変数が送信されたかどうかを確認する必要があります。isset() を使用しないと、次のような特定の送信submit=0が失敗します。

于 2010-03-17T06:41:38.373 に答える
1

E_NOTICE2 番目の例では、そのキーが に設定されていない場合、PHP は (オンまたはより厳密に) 通知を発行し$_POSTます。

Stack Overflow のこの質問も参照してください。

于 2010-03-17T06:50:32.083 に答える
0

ユーザーが値を入力しない場合、$_post[] は isset の説明で述べた NULL を返します:"

isset は存在​​する場合は TRUE を返し、NULL でない場合は FALSE を返しますが、ここでは isset は true を返します。

于 2013-08-13T05:41:04.067 に答える
0

コード


if($_POST['Submit'])
{
//some code
}

WAMPでは動作しません(xamppで動作します)
WAMPでは使用する必要があります


if (isset($_POST['Submit'])) { 
  //do something
}

それを試してみてください。:)

于 2010-03-17T09:51:53.623 に答える