Je peux me tromper, mais jetez un coup d'œil. Si je code en dur la logique, cela fonctionne mais pas si j'essaie de l'utiliser comme variable.Si la déclaration ne semble pas fonctionner correctement
if($range <= 50) {
$operator = "<=";
} else {
$operator = ">=";
}
foreach($cursor as $s) {
$data = round($this->distance($zip_lat, $zip_lon, $s["lat"],$s["lon"]), 2);
if ($data .$operator. $range) {
$zipcodes[] = "$s[zipcode]";
}
}
Je veux dire, je pourrais ajouter if/else à l'intérieur du foreach mais était pas sûr si elle ajoute une « surcharge ».
Cela ne devrait-il pas être opérateur = ">" pour la partie else? –
D'autres ont déjà résolu votre problème, mais pas exactement expliqué le problème. La raison pour laquelle votre code ne fonctionne pas est ce $ data. $ opérateur. $ range évalue à une chaîne, pas une expression booléenne comme vous l'utilisez, et une chaîne non vide, non nulle, évalue toujours à vrai. –
lol @ titre: Je pense que la plupart des langues auront sûrement assuré que l'instruction 'if' fonctionne correctement ;-) – ChristopheD