PHP:尽可能将String转换为Float

Nic*_*uin 0 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)
Run Code Online (Sandbox Code Playgroud)

dec*_*eze 5

function toNumber($input) {
    return is_numeric($input) ? (float)$input : $input;
}
Run Code Online (Sandbox Code Playgroud)