Ho lottato per lo stesso problema, e mi sono reso conto che c'era uno spazio dopo il numero.
lunga storia breve, che cosa mai il numero è:
is_numeric(" 0.0") --> YES
is_numeric("0.0 ") --> NO
Ecco un esempio ...
public function getCoordinates()
{
return sprintf('%1$f , %2$f',$this->getLatitude(),$this->getLongitude());
}
Più avanti nel processo di ...
$myarr = explode(",",$_ScreenCoordinates);
echo "_ScreenCoordinates:$_ScreenCoordinates<br>";
echo "myarr[0]:".$myarr[0]." - ".((is_numeric($myarr[0]))?"YES":"NO")."<br>";
echo "myarr[1]:".$myarr[1]." - ".((is_numeric($myarr[1]))?"YES":"NO")."<br>";
echo "trimmed[0]:".$myarr[0]." - ".((is_numeric(trim($myarr[0])))?"YES":"NO")."<br>";
Stampato sullo schermo:
Array ([0] => 1.200000 [1] => 123.456000)
_ScreenCoordinates:1.200000 , 123.456000
myarr[0]:*1.200000 * - NO
myarr[1]:* 123.456000* - YES
trimmed[0]:*1.200000 * - YES
no repro, 'is_numeric (0)' restituisce 'bool (true)' per me. lo stesso con 'is_int' – SilentGhost
@Industrial: sei sicuro? http: //www.ideone.com/h5CSa – kennytm
Sei sicuro che non sia una lettera O invece di uno zero? –