我有(或没有)一个来自我的查询字符串的变量$_GET['myvar'],我想检查这个变量是否存在,以及它的值是否与if语句中的某个值相对应:
我所做的和所想的并不是最好的方法:
if(isset($_GET['myvar']) && $_GET['myvar'] == 'something'):做点什么
我的问题是,有没有办法在不两次声明变量的情况下做到这一点?
这是一个简单的例子,但想象一下,必须比较许多这样的$myvar变量。
发布于 2014-11-11 19:40:53
这与公认的答案类似,但改为使用in_array。在这种情况下,我更喜欢使用empty()。我还建议使用PHP 5.4.0+中提供的新的速记数组声明。
$allowed = ["something","nothing"];
if(!empty($_GET['myvar']) && in_array($_GET['myvar'],$allowed)){..}下面是一次检查多个值的函数。
$arrKeys = array_keys($_GET);
$allowed = ["something","nothing"];
function checkGet($arrKeys,$allowed) {
foreach($arrKeys as $key ) {
if(in_array($_GET[$key],$allowed)) {
$values[$key];
}
}
return $values;
}https://stackoverflow.com/questions/4007752
复制相似问题