PHP如果功能不起作用

时间:2014-01-19 04:12:08

标签: php if-statement

我是这个PHP的新手,想要一些建议,为什么我的计算不起作用。

$income = number_format($_POST[income], 2);
$year = $_POST[year];
if ($income >= 0 && $income <= 18200){ 
    $taxo = number_format(0,2);}
elseif ($income >= 18201 && $income <= 37000){
    $taxo = number_format($income * 0.19 ,2);
}

以及我的HTML文件中的某个地方

tax on income
$
echo $taxo;                 

然而,当我运行文件时,$ taxo是alwasy 0(?)。任何人都可以告诉我哪里弄错了?

提前致谢

艾伯特

2 个答案:

答案 0 :(得分:4)

number_format()返回一个字符串,您正尝试对其进行整数比较。 e.g。

$income = '12345678';
$income = number_Format($income, 2); // 12,345,678.00

if ('12,345,678.00' >= 0) && ('12,345,678.00' <= 18200)

PHP会将您的字符串 BACK 转换为整数,然后您最终会执行

if (12 >= 0) && (12 <= 18200)

number_format()对人类可读输出很有用。当你进行内部比较时,它完全是无用的,因为你正在采取应该是苹果对苹果的比较,并将它们变成橙子对苹果。

答案 1 :(得分:2)

$_POST[income]替换为$_POST['income'],将$_POST[year]替换为$_POST['year']