【发布时间】:2011-02-23 14:09:54
【问题描述】:
鉴于此输入:http://example.com/item.php?room=248&supply_id=18823,以下 2 个块应该产生相同的结果。他们为什么不呢?除了咖啡,我还缺少什么?
这个块给出了预期值:
if (isset($_GET['supply_id']) && isset($_GET['room'])) {
$id=validkey($_GET['supply_id']); //18823
$room=validkey($_GET['room']); //248
$arr=array('s'=>$id,'r'=>$room); //s=>18823, r=>248
}
但如果我一步完成检查和赋值,$id 最终等于 1 而不是 18823。为什么?
if (isset($_GET['supply_id']) && isset($_GET['room'])) {
if($id=validkey($_GET['supply_id']) && $room=validkey($_GET['room']))
$arr=array('s'=>$id",'r'=>$room); //s=>1, r=>248
}
这是我正在使用的功能:
function validkey($value){
if(is_scalar($value)){
$value=(int)$value;
return ($value>0) ? $value : false;
}
return false;
}
【问题讨论】: