$_GET, $_POST などの値を使用する場合、よくサンプルとして
php
$str = isset($_POST['str']) ? $_POST['str'] : '';
のようにスーパーグローバル変数を直接扱っているものを見かけます。
php
$str = $_POST['str'];
なんて記述は論外ですが、上の三項演算子のモノでも、IDE によっては「スーパーグローバル変数には直接アクセスしないでね。」と警告をクラってしまいます。
少し調べてみたのですが、理由は以下のようでした。
スーパーグローバル変数は、変更可能な変数であるため、直接アクセスすべきではない。
利便性も良いので、filter_input()
を利用することは嫌ではないのですが、警告内容に納得がいっていません。
スーパーグローバル変数に直接アクセスしない方がいい理由とはなんなんでしょうか?
できれば具体的な内容も交えて説明いただけると助かります。
少しとんがった回答でもありがたいです。よろしくお願いいたします。
まだ回答がついていません
会員登録して回答してみよう