PHP 中 “&&” 和 “AND” 運算子的比較。
PHP 提供了強大的運算子來執行算術、賦值、比較等多種操作……本文將重點介紹邏輯運算子 “&&” 和 “AND”,並研究如何根據它們的優先順序來使用它們。邏輯運算子 “&&” 和 “AND” 的結果是真或假,因此它們也被稱為布林運算子。
在深入研究之前,讓我們先了解一下什麼是 “AND” 運算子?“AND” 運算子只有當兩個條件都為真時才返回真。讓我們透過一個例子來演示 “AND” 運算子。
示例
<?php $val1 = 20; $val2 = 50; if ($val1 == 20 and $val2== 50) echo "True"; else echo "False"; ?>
輸出
True
解釋
由於變數 $val1 = 20 且 $val2 = 50,條件 $val1 == 20 評估為真,$val2 == 50 也評估為真。因此,兩個運算元都為真,結果也為真。讓我們討論另一個示例。
示例 2
<?php $a = 30; $b = 50; if ($a == 30 and $b == 10) echo "True"; else echo "False"; ?>
輸出
False
解釋
由於我們聲明瞭變數 $a = 30 和 $b = 50,條件 $a == 30 評估為真,但當在宣告中輸入 $b = 50 並在條件 $b == 10 中返回假時,所以 AND 操作的結果將為假。
現在來看 “&&” 運算子,它的作用與 “AND” 運算子相同,如果表示式中的兩個條件/運算元都為真,則返回真。現在讓我們看一下下面使用 “&&” 運算子的示例。
示例
<?php $val1 = 25; $val2 = 5; if ($val1 == 25 && pow($val2, 2) == $val1) echo "True"; else echo "False"; ?>
輸出
True
解釋
由於變數 $val1 = 25 且 $val2 = 5,條件 $val1 == 25 評估為真,而 pow($val2, 2) == $val1 也評估為真,因為 $val2= 5 的 2 次冪是 25,它等於 $val1。因此,'$val1 == 25&& pow($val2, 2) == $val1' 評估為真,因為 AND 邏輯規定只有當兩個運算元都為真時,AND 操作的結果才為真。
注意
讓我們再舉一個例子,如果我們宣告輸入 $val2 = 20,條件 pow($val2, 2) == $val1 將導致假,所以 AND 操作的結果將為假。
現在討論 “AND” 和 “&&” 運算子在優先順序方面的比較。運算子是在表示式中根據運算子的優先順序執行的。'&&' 運算子的優先順序較高,而 “AND” 運算子的優先順序較低。讓我們透過下面的示例來研究上述差異。
<?php $a =10; $b = NULL; $val = $a && $b; echo ($val ? 'TRUE' : 'FALSE'),"
"; $val = $a and $b; echo ($val ? 'TRUE' : 'FALSE'); ?>
輸出
FALSE TRUE
解釋
當運算元相同時,這兩個運算子的結果不同。第一個表示式結果為 FALSE,而第二個表示式結果為 TRUE,儘管它們都使用了相同的操作。
第一個表示式 $val = $a && $b; 結果為 FALSE,因為首先執行 “&&” 操作,然後將結果賦值給變數 $val,因為 && 運算子的優先順序高於 = 運算子的優先順序。
第二個表示式 $bool = $a and $b; 評估為 TRUE,因為運算子 “and” 的優先順序低於運算子 "=",所以變數 $a = 10(位於 = 的右側)的值被賦值給 $val,因此 $val 持有 10,然後內部執行 “and” 操作,但沒有賦值,因此 $val 現在持有 TRUE。
因此,為了澄清,“AND” 運算子和 “&&” 運算子之間的主要區別在於它們的優先順序,但兩者都執行相同的操作。