Php新手在这里,对本机PHP购物车进行故障排除。出于某种原因,此代码不会转到 elseif $item['type']>= 7。尝试使用其他方法,但仍然不行。这是带有条件语句的位。提前感谢伙计们。此外,您可以提供有关如何使此代码整洁的任何建议也非常受欢迎,10 +年前的一个人写了它。
我也回显了 $item['type'] 的值,它确实大于 7 的值,以防你们认为这就是问题所在。
<?php if($item['type']<7)
{
//combination
$countChilli = 0;
$surcharge = 0.0;
echo 'Combination (';
echo $comboTypes[$item['type']][$item['rice']]['name'];
echo ')';
?> </div>
<div class="comboItems not">
<?php foreach($item['items'] as $ingredient)
{
echo $ingredient['itemName'].'<br />';
if($ingredient['id']==133){ $countChilli++; }
}
if($countChilli==1)
{
if(count($item['items'])==1)
{
$surcharge=300;//CHANGEED FROM 2.00
}
elseif(count($item['items'])==2)
{
$surcharge=150;
}
else
{
$surcharge=100;
}
}
elseif($countChilli>1)
{
$surcharge=200;
}
}
elseif($item['type']>=7)
{ //sauce only
echo 'testing';
echo $comboTypes[$item['type']][$item['rice']]['name'];
?> </div>
<div class="comboItems sauce">
<?php foreach($item['items'] as $ingredient)
{
echo $ingredient['itemName'].'<br />';
}
}
更改
elseif($item['type']>=7)
自
else
您可能还想更改
if($item['type']<7)
自
if(intval($item['type'])<7)
更干净的代码实际上可以解决很多问题。另请参阅 PHP 比较运算符
<?php
if($item['type'] < 7)
{
//combination
$countChilli = 0;
$surcharge = 0.0;
echo 'Combination (';
echo $comboTypes[$item['type']][$item['rice']]['name'];
echo ')';
echo '</div>
<div class="comboItems not">';
foreach($item['items'] as $ingredient)
{
echo $ingredient['itemName'].'<br />';
if($ingredient['id'] === 133){ $countChilli++; }
}
if($countChilli === 1)
{
if(count($item['items']) === 1)
{
$surcharge = 300;//CHANGEED FROM 2.00
}
elseif(count($item['items']) === 2)
{
$surcharge = 150;
}
else
{
$surcharge = 100;
}
}
elseif($countChilli > 1)
{
$surcharge = 200;
}
}
else
{
//sauce only
echo 'testing';
echo $comboTypes[$item['type']][$item['rice']]['name'];
echo '</div>
<div class="comboItems sauce">';
foreach($item['items'] as $ingredient)
{
echo $ingredient['itemName'].'<br />';
}
}
?>
你可以在那里投射:
if((int)$item['type']<7)
在大多数情况下,它更快。另外,您不需要为这种简单的转换进行函数调用,因为不需要指定基数。
另一个选项是"+"运算符:
if(+$item['type']<7)