为什么这个功能不适用于“格式化”的数字?

时间:2013-10-09 03:23:06

标签: php function

我有一个功能可以做到这一点......

function coefficient_display($coeff){
    if ($coeff == 1){
        return '';
    } elseif ($coeff == -1){
        return '-';
    } else {
        return $coeff;
    }   
}

看来,如果你输入一个“格式化”的号码,它就会失败。为什么呢?

coefficient_display(1200)提供 1200 coefficient_display('1200')提供 1200 coefficient_display(1,200)失败。

3 个答案:

答案 0 :(得分:1)

因为这里没有一些“格式化”数字:foo(1,200)只有2个参数1和200。

尝试coefficient_display("1,200")coefficient_display("1.200")

答案 1 :(得分:1)

以下是对你所得到的一些解释。

coefficient_display('1200')gives 1200.

PHP数据类型可以互换,因此'1200'(string)!= 1或-1。因此执行else部分。

coefficient_display(1,200) fails.

这实际上并没有失败,这会返回空白字符串。由于第一个参数是1 if ($coeff == 1)为真,它执行return '';行。第二个参数200将被忽略。

希望这有帮助。

答案 2 :(得分:0)

1,200不是数字,请尝试使用coefficient_display('1,200')  并将所有'=='更改为'==='