2014-01-19 61 views
-1

我是這個PHP的新手,並想要一些建議,爲什麼我的計算不起作用。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(?)。可有人請告知在那裏我聽錯了?

在此先感謝

阿爾伯特

+0

你是什麼意思不起作用? – hichris123

+0

如果echo在HTML中顯示,那麼您不在服務器上解析PHP。 –

+0

你能「回聲」Hello World「;'? –

回答

4

number_format()返回一個字符串,你正在試圖做的整數比較。例如

$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()是人類可讀的輸出是有用的。當你只進行內部比較時,這是完全無用的,因爲你正在做什麼應該是蘋果對蘋果的比較,並將它們變成橙子對蘋果。

2

更換$_POST[income]$_POST['income']$_POST[year]$_POST['year']

+2

很好的建議,但PHP會禮貌地將它們當作無引號的字符串,但要以警告爲代價。 –

+0

仍然無法正常工作。任何其他建議?謝謝 – Lexusap

+0

@ user3211379,Marc給了你一個非常明確的解釋。 –