PHP如果else只显示错误的输出作为第一个条目值。代码给出

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

标签: php mysql if-statement

使用Php计算费用 - 如果:

  

$make =车辆制作

     

$prod =车辆型号

那么它应该显示适当的费用。但是我的代码总是在第一个条目中显示费用。

例如,如果代码第一个条目的格式为Mahindra,则它将在所有产品$l8150,{Mahindra中回显Maruti Mercedes Benz {1}},Toyota等。代码不尊重逻辑。

如果第一个条目被Tata替换,那么它将回显7500,尽管有任何产品MahindraMarutiMercedes Benz,{{1} },Toyota等。

任何帮助都将不胜感激。

修改代码

Tata

1 个答案:

答案 0 :(得分:1)

尝试使用嵌套if语句的函数:

// If you use false as default values, it will not throw an error if
// either value is left empty
function FetchLogistics($make = false,$prod = false)
    {
        // Account for case. Make it all lower so it's all the same
        $make   =   strtolower($make);
        $prod   =   strtolower($prod);

        if($make == "mahindra")
            return 8150;
        elseif($make == "maruti suzuki")
            return 1500;
        // Just check once for make
        elseif($make == "skoda") {
                // Check for models now
                if($prod == "rapid")
                    return 8000;
                elseif($prod == "octavia")
                    return 10000;
            }
        elseif($make == "renault") {
                if($prod=="duster")
                    return 8500;
            }
        elseif($make == "tata")
            return 7500;
        elseif($make == "volkswagen")
            return 7000;
        elseif($make == "toyota")
            return 5750; 
        elseif($make == "mercedes benz")
            return 35000;

        // No matches will return false (empty)
        return false;       
    }

// Verify these two values are what you expect
$make = trim($this->prodDet->CatName);
$prod = trim($this->prodDet->product);

// Echo the returned value.
echo FetchLogistics($make,$prod);