我有一个PHP脚本,在加载时,首先检查它是否通过POST加载,如果不是,则GET ['id']是一个数字。
现在我知道我可以这样做:
if(isset($_GET['id']) AND isNum($_GET['id'])) { ... }
function isNum($data) {
$data = sanitize($data);
if ( ctype_digit($data) ) {
return true;
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
但我想这样做:
if(isNum($_GET['id'])) { ... }
function isNum($data) {
if ( isset($data) ) {
$data = sanitize($data);
if ( ctype_digit($data) ) {
return true;
} else {
return false;
}
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
当我这样尝试时,如果未设置$ _GET ['id'],则会收到未定义索引的警告:id ...就像我将$ _GET ['id']放入函数中一样调用,它会发出警告...即使我的函数将检查是否设置了var ...
还有另一种方法可以做我想做的事情,还是我被迫始终检查isset然后添加其他要求。
我总是包含一些其他语言提供的便利功能:get。
function get($needle, $haystack, $return=null) {
return array_key_exists($needle, $haystack) ? $haystack[$needle] : $return;
}
Run Code Online (Sandbox Code Playgroud)
现在您可以致电:
if(isNum(get('id', $_GET))) {
// do something here
}
Run Code Online (Sandbox Code Playgroud)