在PHP中,我需要编写一个接受字符串的函数,并尽可能将其转换返回到float,否则只返回输入字符串。
我认为这个功能会起作用。显然这种比较是错误的,但我不明白为什么。
function toNumber ($input) {
$num = floatval($input); // Returns O for a string
if ($num == $input) { // Not the right comparison?
return $num;
} else {
return $input;
}
}
echo(gettype(toNumber("1"))); // double
echo(gettype(toNumber("3.14159"))); // double
echo(gettype(toNumber("Coco"))); // double (expected: string)
答案 0 :(得分:5)
function toNumber($input) {
return is_numeric($input) ? (float)$input : $input;
}
答案 1 :(得分:1)
尝试if($num){return $num;}else{return $input}
,这样可以正常工作,当$ num = 0时,它只会跳转到else语句部分
答案 2 :(得分:0)
如果我理解正确的话,最快的事情就是检查$ num == 0而不是$ num == $ input。