PHP:尽可能将String转换为Float

时间:2013-03-27 14:57:10

标签: php type-conversion

在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)

3 个答案:

答案 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。