を含むエラーレベルでPHPで外部変数を使用する最良の方法を探していますE_NOTICE
。
3 つの方法が考えられます。それぞれについてヒントを与えるか、別のアプローチを提案していただければ幸いです。
-
1.
クラス WebApp { public static function _GET($Index) { if (isset($_GET[$Index])) { $_GET[$Index] を返します。 } そうしないと { NULL を返します。 } } } // E_NOTICE、通知をスローしません: echo WebApp::_GET('ID'); // E_NOTICE、通知をスローします: echo $_GET['ID'];
2.
クラスRequestSanitizer { const V_INTEGER = 1; const V_STRING = 2; const V_REAL = 3; public static function Sanitize($arr) { foreach ($arr as $key => $val) { if (array_key_exists($key, $_GET)) { スイッチ ($val) { ケース RequestSanitizer::V_INTEGER: $_GET[$キー] = $_GET[$キー] + 0; 壊す; ケース RequestSanitizer::V_STRING: $_GET[$キー] = $_GET[$キー] + ''; 壊す; ケース RequestSanitizer::V_REAL: $_GET[$キー] = $_GET[$キー] + 0; 壊す; } } そうしないと { $_GET[$key] = null; } } } } RequestSanitizer::Sanitize(配列( 'GraphID' => RequestSanitizer::V_INTEGER, 'UserName' => RequestSanitizer::V_STRING, 'パスワード' => RequestSanitizer::V_STRING, 「価格」 => RequestSanitizer::V_REAL )); echo $_GET['GraphID'];
3.
if (isset($_GET['ID']) && ($_GET['ID']+0>0)) { echo $_GET['ID'] }