我是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);
Run Code Online (Sandbox Code Playgroud)
我得到了值等待批准(第一个if/elseif
评估为
TRUE).
但是,由于3 === 3比较评估为TRUE,我不应该回来' 付费 ' 吗?
还有?
关于这类问题的所有其他S.0答案都提到'='运算符vs'==',这在我的代码中是正确的.
一旦达到truthy语句,if/else等控制结构就会停止执行.由于第一个块为真,因此永远不会评估其他块.
如果第一个块应该失败,(即评估为false),那么第二个语句将始终求值为true,代码将被执行.