遵循php代码的逻辑OR做了什么

时间:2013-02-21 05:34:32

标签: php

if($post_id === null) {
    $this->db->insert($data);
    !isset($data[$this->page_id]) || $data[$this->page_id] = NULL;

}

1 个答案:

答案 0 :(得分:4)

逻辑运营商执行 short-circuit evaluation 。 如果逻辑OR的第一部分为真,则整个表达式为真,因此无需评估第二部分。

它所做的相当于:

if(isset($data[$this->page_id])){
    $data[$this->page_id] = NULL
}

documentation

中举例说明其工作原理
// foo() will never get called as those operators are short-circuit
$a = (false && foo());
$b = (true  || foo());