С учетом этого ввода: 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;
}