Notice: Undefined indexのissetメソッドでの回避
標記について、issetにてnoticeを回避できることは分かりましたが、その理由・理屈が分かりませんのでご教授頂けませんでしょうか。お願い致します。
####ググると以下の理由が記載されていました
初回アクセス時と2回目以降のアクセスで処理を切り分けていないことが考えられます。たとえば、「送信する」ボタンをクリックした後にフォーム入力値を受け取るスクリプトの場合、そのスクリプトに最初にアクセスしたときは$_GET['sign']には何も入っていないので、このエラーメッセージが表示されます。
####不明点
1、issetで回避できる原理・理屈が不明です。
初回アクセス時に、$_GET['sign']には何も入っていない場合は、falseで終了して何も表示されないはずではないでしょうか。
2、初回アクセス、2回目以降のアクセスというのが分かりません。
form.phpでsubmitし、display.phpに移行して終了のため初回アクセスのみではないでしょうか。
form.php
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>aaa</title> </head> <body> <p>1-4</p> <form action='display.php' method='GET'> <select name='sign'> <option value='1'>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> </select> <input type='submit' value='send'> </form> </body> </html>
display.php(issetあり版)
<?php if (isset($_GET['sign'])) { echo $_GET['sign']; }
display.php(issetなし版)
<?php echo $_GET['sign'];
回答4件
あなたの回答
tips
プレビュー