我正在寻找如何在 PHP 中使用具有错误级别的外部变量的最佳方法,包括E_NOTICE.
我有三种可能的方法,我会很高兴,如果你能对每种方法给出一些提示或提出你喜欢的不同方法。
-
1.
类 WebApp {
公共静态函数 _GET($Index) {
if (isset($_GET[$Index])) {
返回 $_GET[$Index];
} 别的 {
返回空值;
}
}
}
// E_NOTICE,不抛出通知:
回声 WebApp::_GET('ID');
// E_NOTICE,抛出一个通知:
回声 $_GET['ID'];
2.
类 RequestSanitizer {
常量 V_INTEGER = 1;
常量 V_STRING = 2;
常量 V_REAL = 3;
公共静态函数清理($arr){
foreach ($arr as $key => $val) {
if (array_key_exists($key, $_GET)) {
开关 ($val) {
案例 RequestSanitizer::V_INTEGER:
$_GET[$key] = $_GET[$key] + 0;
休息;
案例 RequestSanitizer::V_STRING:
$_GET[$key] = $_GET[$key] + '';
休息;
案例 RequestSanitizer::V_REAL:
$_GET[$key] = $_GET[$key] + 0;
休息;
}
} 别的 {
$_GET[$key] = null;
}
}
}
}
RequestSanitizer::Sanitize(数组(
'GraphID' => RequestSanitizer::V_INTEGER,
'用户名' => RequestSanitizer::V_STRING,
'密码' => RequestSanitizer::V_STRING,
'价格' => RequestSanitizer::V_REAL
));
回声 $_GET['GraphID'];
3.
if (isset($_GET['ID']) && ($_GET['ID']+0>0)) {
回声 $_GET['ID']
}