私はグローバル変数が本当に嫌いです - おそらくそれは私の中のC#プログラマーですが、PHPで作業しているときは、次のようなことをしなければならないたびに歯を食いしばります:
$strUsername = $_GET['username'];
はい、私はそれを非常に単純化しすぎており、はいはい、これらすべてを適切にサニタイズしています。実際、私が構築したフレームワークでは、すべてのスーパーグローバルがほぼ実行の開始時に取得され、そこから依存性が注入されます。
私は PHP マニュアルでこの関数に出くわしました (本当に毎日何か新しいことを学んでいます): filter_input_array()。
したがって、技術的には、GET スーパーグローバルからすべてを取得する代わりに、次のようにすることができます。
$GETdata = filter_input_array(INPUT_GET);
....など、POST、REQUESTなどの他のものと同様です。私の質問は、filter_input_arrayを使用してスーパーグローバルの惨劇を回避する必要があるか、またはそれらに固執してfilter_input 関数? これに関する他のみんなの経験は何ですか?
編集: 1 つ忘れていました。filter_input 関数は、スーパーグローバルに対して行うスクリプト レベルの変更を認識していないため、後で$_GET['cheese'] = 'puff';
実行しようとするfilter_input(INPUT_GET, 'cheese');
と null が返されます。私はすべてを依存性注入するので、これは問題ありませんが、気付いていない場合、後で不意を突かれる可能性があります。