我是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' =='这在我的代码中是正确的。
答案 0 :(得分:5)
一旦达到truthy语句,if / else等控制结构就会停止执行。由于第一个块为true,因此永远不会评估其他块。
如果第一个块应该失败,(即评估为false),那么第二个语句将始终评估为true并且代码将被执行。