[英]How to use external variables (e.g. POST/GET) in PHP with error level E_NOTICE
我正在尋找如何在PHP中使用錯誤級別包括E_NOTICE
外部變量的最佳方法。
如果您可以給每種方法提供一些提示或建議您喜歡的其他方法,我有三種可能的方法,我很高興。
class WebApp { public static function _GET($Index) { if (isset($_GET[$Index])) { return $_GET[$Index]; } else { return NULL; } } } // E_NOTICE, does not throw a notice: echo WebApp::_GET('ID'); // E_NOTICE, throws a notice: echo $_GET['ID'];
2。
class 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)) { switch ($val) { case RequestSanitizer::V_INTEGER: $_GET[$key] = $_GET[$key] + 0; break; case RequestSanitizer::V_STRING: $_GET[$key] = $_GET[$key] + ''; break; case RequestSanitizer::V_REAL: $_GET[$key] = $_GET[$key] + 0; break; } } else { $_GET[$key] = null; } } } } RequestSanitizer::Sanitize(array( 'GraphID' => RequestSanitizer::V_INTEGER, 'UserName' => RequestSanitizer::V_STRING, 'Password' => RequestSanitizer::V_STRING, 'Price' => RequestSanitizer::V_REAL )); echo $_GET['GraphID'];
3。
if (isset($_GET['ID']) && ($_GET['ID']+0>0)) { echo $_GET['ID'] }
我會用
if (isset($_GET['ID']) && ($_GET['ID']+0>0)) {
echo (int)$_GET['ID']
}
用強制轉換為integer (int)
。 如果值必須是整數。
我會使用一個封裝所有Php“ superglobals”的Request類,並提供諸如“ param()”,“ numParam()”,“ arrayParam()”之類的方法。
$req = new Request();
$user_id = $req->numParam('id');
// user_id is guaranteed to be a valid integer or 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.