邏輯與或短路

2021-09-24 17:42:16 字數 1338 閱讀 1846

||、&& 都是短路運算子

短路與 &&

運算方法:

只要「&&」前面是false,無論「&&」後面是true還是false,結果都將返「&&」前面的值;

$g = false&& true; // $g 被賦值為 (false && true),結果為 true

只要「&&」前面是true,無論「&&」後面是true還是false,結果都將返「&&」後面的值;

$g = true && false; // $g 被賦值為 (true && false),結果為 false

總結:假前真後

短路或 ||

運算方法:

只要「||」前面為false,不管「||」後面是true還是false,都返回「||」後面的值。

$g = false || true; // $g 被賦值為 (false || true),結果為 true

只要「||」前面為true,不管「||」後面是true還是false,都返回「||」前面的值。

$g = true || false; // $g 被賦值為 (false || true),結果為 true

總結:真前假後

拓展 and 和 or(主要還是看運算子的優先順序)

<?php

// 下面的 foo() 不會被呼叫,因為它們被運算子「短路」了。

$a = (false && foo());

$b = (true || foo());

$c = (false and foo());

$d = (true or foo());

// "||" 的優先順序比 "or" 高

$e = false || true; // $e 被賦值為 (false || true),結果為 true

$f = false or true; // $f 被賦值為 false [altair注:"=" 的優先順序比 "or" 高]

var_dump($e, $f);

// "&&" 的優先順序比 "and" 高

$g = true && false; // $g 被賦值為 (true && false),結果為 false

$h = true and false; // $h 被賦值為 true [altair注:"=" 的優先順序比 "and" 高]

var_dump($g, $h);

?>

上例的輸出類似於:

bool(true)

bool(false)

bool(false)

bool(true)

java中短路與 邏輯與 短路或 邏輯或

created by cxh on 17 07 21.幾個名詞的定義和它們之間的區別 短路與 eg 條件1 條件2 執行過程 如果條件1成立,則繼續計算條件2 如果條件1不成立,則條件2不再計算,直接返回false.邏輯與 eg 條件1 條件2 執行過程 如果條件1成立,條件2繼續計算 如果條件1不...

C 短路求值(邏輯與 邏輯或)

首先看如下 include using namespace std intmain 執行結果 a 1 a 1 邏輯或的表現形式如下 expression1 exexpression2 這裡用到了邏輯或,由於邏輯或的短路,expression1為true,則後面的expression2 即 a 0 不...

C 短路求值(邏輯與 邏輯或)

首先看如下 include using namespace std intmain 執行結果 a 1 a 1 邏輯或的表現形式如下 expression1 exexpression2 這裡用到了邏輯或,由於邏輯或的短路,expression1為true,則後面的expression2 即 a 0 不...