私はこれの違いを理解しようとしています:
if (isset($_POST['Submit'])) {
//do something
}
と
if ($_POST['Submit']) {
//do something
}
$_POST['Submit'] 変数が true の場合、それが設定されているように思えます。この場合、なぜ isset() 関数が必要なのですか?
私はこれの違いを理解しようとしています:
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
が失敗します。
E_NOTICE
2 番目の例では、そのキーが に設定されていない場合、PHP は (オンまたはより厳密に) 通知を発行し$_POST
ます。
Stack Overflow のこの質問も参照してください。
ユーザーが値を入力しない場合、$_post[] は isset の説明で述べた NULL を返します:"
isset は存在する場合は TRUE を返し、NULL でない場合は FALSE を返しますが、ここでは isset は true を返します。
コード
if($_POST['Submit'])
{
//some code
}
WAMPでは動作しません(xamppで動作します)
WAMPでは使用する必要があります
if (isset($_POST['Submit'])) {
//do something
}
それを試してみてください。:)