HTTP post - PHP if elseif语句问题


http post - php if elseif statement problem

我有一个非常简单的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>";
?>

正如您所看到的,我最初是从post数据中获得$ nummofcards值,但将其设置为50以证明一点。问题是,这段代码本来应该转到else if语句,但它却转到了else语句。这导致总成本等于100美元而不是125美元。

有人知道我做错了什么吗?由于

您的numOfCards中似乎有两次缺少$

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

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

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

您必须使用$numOfCards而不是numOfCards

另外,你应该缩进代码块,最好每层缩进4个空格:

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

看起来您在变量名中缺少$

if (**$**numOfCards == '20')
http://ideone.com/Y89nu

你漏了一个$符号

代码应该是

$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>";