を含むエラーレベルで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']
}