多个或 php 变为真?

multiple or php becomes true?

我有问题。这成为事实。

$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 != ""

...脚本按预期工作。我需要上面的 "or's" 因为值有时可以是 ""。

有人知道为什么即使值是 $mountain_pump 的 "n" 脚本也会运行,如本例所示?

当然,上述条件的计算结果为真:

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

如果 $mountain_pump 既不是 n 也不是 '',则条件只能为假。如果变量是空字符串或 n,则条件为真。不过,我真的不明白问题是什么,只需将 || 替换为 && 就可以了(该条件应排除 $mountain_pump 为 [=12= 的所有情况] 或 '',所以要排除条件 1 条件 2).