Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:尽可能将字符串转换为浮点_Php_Type Conversion - Fatal编程技术网

PHP:尽可能将字符串转换为浮点

PHP:尽可能将字符串转换为浮点,php,type-conversion,Php,Type Conversion,在PHP中,我需要编写一个函数,该函数接受一个字符串并尽可能将其转换为浮点,否则只返回输入字符串 我认为这个功能会起作用。显然这个比较是错误的,但我不明白为什么 function toNumber ($input) { $num = floatval($input); // Returns O for a string if ($num == $input) { // Not the right comparison? return $num; } els

在PHP中,我需要编写一个函数,该函数接受一个字符串并尽可能将其转换为浮点,否则只返回输入字符串

我认为这个功能会起作用。显然这个比较是错误的,但我不明白为什么

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)

如果我理解正确,最快的事情将是检查$num==0而不是$num==input。

如果我理解正确,最快的事情将是检查$num==0而不是$num==input。

试试
如果($num){return$num;}否则{return$input}
,这将很好用,它将只跳转到else语句部分,当$num=0时,尝试
如果($num){return$num;}否则{return$input}
,这将正常工作,它将只跳转到else语句部分,当$num=0时,检查这个-检查这个-是数值吗?好。。褶边好吧,如果你仔细想想,这是有道理的,不是吗-3这就是PHP的问题所在。太多的内置函数具有不可预测的名称(好吧,不是这一个)!嗯,很公平。不过,像所有字符串函数和所有数字函数一样,基本函数的列表也值得一读或两读。没有那么多…:)这是数字吗?好。。褶边好吧,如果你仔细想想,这是有道理的,不是吗-3这就是PHP的问题所在。太多的内置函数具有不可预测的名称(好吧,不是这一个)!嗯,很公平。不过,像所有字符串函数和所有数字函数一样,基本函数的列表也值得一读或两读。没有那么多…:)
function toNumber($input) {
    return is_numeric($input) ? (float)$input : $input;
}