如果或php中的语句没有正确评估

时间:2014-04-14 15:31:46

标签: php

我有这个PHP声明:

if (($row['rest'] != "") or ($row['rest'] != "Select An Option")) {
    $rest = "<b>Rest Stops:</b> {$row['rest']},";
}
else {
    $rest = "";
}

没有正确评估,我无法弄清楚原因。我希望声明要做的是如果该字段“休息”。是空白或&#34;选择一个选项&#34;那么变量$ rest应该评估为&#34; Rest Stops:&#34;其次是数据。我的数据是&#34;选择一个选项&#34;我得到了&#34; Rest Stops:选择一个选项&#34;作为输出。我对这个语句进行了一些测试,我发现PHP正在将变量$ row [&#39; rest&#39;]分配为不等于&#34;&#34;而不是评估&#39;或&#39;声明。什么是正确的语法?

2 个答案:

答案 0 :(得分:2)

  

我希望声明要做的是,如果字段“rest”为空或Select An Option,则变量$rest应评估为Rest Stops:后跟数据。

你的逻辑错误。您需要检查它们是否等于,因此请使用==代替!=

if ($row['rest'] == ""  || $row['rest'] == "Select An Option") {
^--------------------^     ^--------------------------------^
if field 'rest' blank        if field is 'Select An Option'

使用empty()执行“空”检查可以改善这一点:

if (empty($row['test']) || $row['rest'] == "Select An Option") {

答案 1 :(得分:0)

“如果字段'rest'是空白的......” - 如果这是真的,那么你的逻辑是倒退的:

if ($row['rest'] == '') || ($row['rest'] == 'Select an option') {
    $rest = 'rest stops';
} else {
    $rest = '';
}

注意使用==表示平等,而不是!=表示不平等。