由ZERO添加 - PHP

时间:2014-07-24 11:28:48

标签: php

$total_value$bawtry_value为非零值时,有人可以告诉我为什么$chain_value评估为ZERO?

PHP

    $bawtry_value = utf8_encode(money('%n', $bawtry * $price));

    echo "Bawtry Value";
    echo '<br />';
    echo $bawtry_value;
    echo '<br />';

    $chain_value = utf8_encode(money('%n', $chain * $price));


    echo "Chain value";
    echo '<br />';
    echo $chain_value;
    echo '<br />';

    $total_value = utf8_encode(money('%n', $bawtry_value + $chain_value));

    echo "Total value";
    echo '<br />';
    echo $total_value;
    echo '<br />';

示例输出

Result Bawtry 0
Result Chain 2
Total Pairs 2

Bawtry Value
£0.00

Chain value
£39.90

Total value
£0.00

当一个是ZERO时,PHP是否存在将两个数字加在一起的问题?

任何帮助都会很棒。感谢

1 个答案:

答案 0 :(得分:1)

看来你应该改变这一行:

$total_value = utf8_encode(money('%n', $bawtry_value + $chain_value));

$total_value = utf8_encode(money('%n', $bawtry * $price + $chain * $price));

甚至

$total_value = utf8_encode(money('%n', $price * ($bawtry + $chain)));

现在在计算$total_value时,您在$bawtry_value$chaing_value的开头有货币符号,如果添加货币符号,则转换为0。

如果您尝试显示以下内容,则可以看到:

echo '£0.00' + '£39.90';

这些字符串的第一个字符£被转换为0.

但是,如果你尝试做那样的事情

echo '2£0.00' + '39.90£';

结果将是41.90,因为字符串被转换为int,直到第一个使字符串无法转换为int的字符。