我有一个非常简单的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美元。
有谁知道我做错了什么? 感谢
答案 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)
答案 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>";