php if elseif语句问题

时间:2011-05-04 15:24:13

标签: php http-post if-statement

我有一个非常简单的php程序,我正在为我的计算机科学课程工作,但我遇到了一些麻烦。

<?php
$numOfCards = '50'; //$_POST['numOfCards'];
$totalCost = 0.00;

if (numOfCards == '20')
{
$totalCost = $numOfCards*3.00;
}
else if (numOfCards == '50')
{
$totalCost = $numOfCards*2.50;
}
else
{
$totalCost = $numOfCards*2.00;
}

echo "<p>TOTAL COST FOR ".$numOfCards." CARDS: $".$totalCost."</p>";
?>

正如您所看到的,我最初从发布数据中获取了$ numOfCards值,但已将其设置为50以证明一点。问题是这个代码应该转到else if语句,而是转到else语句。这导致totalCosts等于100美元而不是125美元。

有谁知道我做错了什么? 感谢

4 个答案:

答案 0 :(得分:5)

$两次似乎缺少numOfCards

为了更轻松地找到这些问题,请在脚本之上启用错误报告和警告:

error_reporting(-1);
ini_set('display_errors','On');

然后,您将看到两条消息,说明您不是与变量进行比较(如您所愿),而是与字符串"numOfCards"进行比较。

答案 1 :(得分:2)

您必须使用$numOfCards而不是numOfCards

此外,你应该缩进你的代码块,最好每个级别有4个空格:

if ($numOfCards == '20') {
    $totalCost = $numOfCards*3.00;
}
else if ($numOfCards == '50') {
    $totalCost = $numOfCards*2.50;
}
else {
    $totalCost = $numOfCards*2.00;
}

答案 2 :(得分:0)

您似乎错过了变量名称中的$

if (**$**numOfCards == '20')

http://ideone.com/Y89nu

答案 3 :(得分:-1)

是的,你错过了一个$ sign

代码应为

$numOfCards = '50'; 
//$_POST['numOfCards']; 
$totalCost = 0.00;  

if ($numOfCards  == '20') 
{     
  $totalCost = $numOfCards*3.00;     
} 
else if ($numOfCards  == '50') 
{     
  $totalCost = $numOfCards*2.50;     
} 
else 
{     
  $totalCost = $numOfCards*2.00;     
}  

echo "<p>TOTAL COST FOR ".$numOfCards." CARDS: $".$totalCost."</p>";