多个或php变为真?

时间:2015-03-30 18:09:11

标签: php syntax

我有问题。这变成了现实。

$mountain_pump = "n";
if ($mountain_pump != "n" || $mountain != "n" || $mountain_pump != "" || $mountain != "") {
        if ($rot == "Ja"){
            $vibration = 12000;
            $vibration_string = number_format($vibration , 0, ',', '.') . " kr (med ROT-avdrag)";
        } else {
            $vibration = 15000;
            $vibration_string = number_format($vibration , 0, ',', '.') . " kr (utan ROT-avdrag)";
        };
        $summary = $summary + $vibration;
        $printstring = $printstring . "<tr><td>Vibrationsbesiktning:</td><td>" . $vibration_string . "</td></tr>";
    }

如果我删除了这个......

|| $mountain_pump != "" || $mountain != ""

...脚本按预期工作。我需要有上述&#34;或&#34;&#34;因为价值可以是&#34;&#34;有时。

任何人都知道为什么脚本会运行,即使值是&#34; n&#34; $ mountain_pump,如本例所示?

1 个答案:

答案 0 :(得分:0)

当然,上述条件评估为真:

$mountain_pump = 'n';
if ($mountain_pump != 'n' || $mountain_pump != '')

如果$mountain_pump n'',则条件只能为false。如果变量是空字符串或n,则条件为真。我不知道问题是什么,只需将||替换为&&并在那里(条件应排除$mountain_pump所有情况n'',因此您要排除条件1 条件2)。