不会去else / elseif语句

时间:2015-01-11 04:15:08

标签: php

Php新手在这里,对本机php购物车进行故障排除。出于某种原因,此代码没有转到elseif $ item [' type']> = 7.尝试使用其他但仍然没有去。这是条件语句的一部分。先谢谢你们。此外,您可以提供任何建议,如何使这些代码整洁,非常受欢迎,10年前的一个人写了它。

我也回应了$ item [&#39; type&#39;]的价值,如果你认为这是问题所在,它确实会达到大于7的值。< / p>

<?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 />';
            }
        }

3 个答案:

答案 0 :(得分:0)

更改

elseif($item['type']>=7)

else

您可能还想更改

if($item['type']<7)

if(intval($item['type'])<7)

答案 1 :(得分:0)

清洁代码实际上可能解决了很多问题。另请参阅PHP comparison operators

<?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 />';
    }
}
?>

答案 2 :(得分:-1)

你可以在那里施展:

if((int)$item['type']<7)

在大多数情况下它更快。此外,您无需为无需指定基础的简单转换进行函数调用。

另一个选项是“+”运算符:

if(+$item['type']<7)