0

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

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)失败。

4

3 回答 3

1

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

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

于 2013-10-09T03:32:04.980 回答
1

这是您所得到的一些解释。

coefficient_display('1200')gives 1200.

PHP 数据类型是可互换的,所以'1200'(string)!= 1 或 -1。从而执行 else 部分。

coefficient_display(1,200) fails.

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

希望这可以帮助。

于 2013-10-09T03:37:10.330 回答
0

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

于 2013-10-09T03:31:49.873 回答