简单的IF / ELSEIF无法正确比较

时间:2014-11-12 20:53:10

标签: php if-statement

我是PHP的新手,之前曾被问过,但答案在我的方案中没有被删除。

我有这段代码:

  if ($node->field_available_for_payment[LANGUAGE_NONE][0]['value']==0){
  }  elseif($node->field_available_for_payment[LANGUAGE_NONE][0]['value']==1){
     $status="awaitingapproval";
  }  elseif (3===3){
     $status="paid";
  } elseif ($node->field_shipped[LANGUAGE_NONE][0]['value']==1){
     $status="shipped";
  } 

 var_dump($status);

我找回了值等待批准(第一个if/elseif评估为 的 TRUE )。

但是我不应该回来' 付费'相反,因为3 === 3比较评估为 TRUE

以及?

关于此类问题的所有其他S.0答案都提到了' ='运营商vs' =='这在我的代码中是正确的。

1 个答案:

答案 0 :(得分:5)

一旦达到truthy语句,if / else等控制结构就会停止执行。由于第一个块为true,因此永远不会评估其他块。

如果第一个块应该失败,(即评估为false),那么第二个语句将始终评估为true并且代码将被执行。