在PHP中,"and"和「&&」都是作為邏輯運算子來使用的,執行相同的操作,那麼它們之間有什麼差別?這篇文章給大家簡單介紹一下運算符"and"和“&&”,讓大家了解運算符"and"和“&&”之間的區別,希望對大家有所幫助。
"and"運算子
在"and"運算子中如果兩個操作數均為true,則傳回true;如果有一個為false,則傳回false。例:
<?php // 变量声明和初始化 $a = 100; $b = 10; //使用"and"运算符 if ($a == 100 and $b == 10) echo "结果为:true"; else echo "结果为:false"; ?>
輸出:
說明:
由於變數$ a = 100而另一個變數$ b = 10,條件$ a == 100的計算結果為true,而$ b == 10的計算結果為true。因為and邏輯顯示如果兩個操作數都是true,則結果才為true;因此,'$ a == 100和$ b == 10'的計算結果為true。
但當輸入$ b = 20時,條件$ b == 10就會為false,因此AND運算結果將為false。
"&&」運算子
#在"&&」運算子中,同樣如果兩個運算元均為true,則傳回true ;如果有一個為false,則傳回false。例:
<?php // 声明变量并初始化它 $a = 100; $b = 10; // 使用 if ($a == 100 && pow($b, 2) == $a) echo "结果为:true"; else echo "结果为:false"; ?>
輸出:
說明:
由於變數$ a = 100而另一個變數$ b = 10,條件$ a == 100的計算結果為true,而pow($ b,2)== $ a的計算結果也為true,因為$ b = 10被提升到2的冪是100,等於$ a。
and邏輯表示只有當兩個運算元都為true時,and運算結果才會為true。因此表達式'$ a == 100 && pow($ b,2)== $ a'的計算結果為true。
但當$ b = 20時,條件pow($ b,2)== $ a的結果為false,這樣and運算的結果就會變成false。
運算子"and"和「&&」的簡單比較
運算子"and"和「&&」之間是存在一些差異:「&&」運算子的優先權高,而"and"運算子的優先權低。
說明:優先權基本上決定了在表達式中首先執行哪些操作。
下面我們透過簡單的程式碼範例來看看運算子"and"和「&&」的差異。
<?php // 在表达式中使用&&运算符 $bool = true && false; // 显示&&运算符的运算结果 echo "&&运算符的结果为:"; echo ($bool ? 'true' : 'false'), "<br><br>"; // 在表达式中使用and运算符 $bool = true and false; // 显示and运算符的运算结果 echo "and运算符的结果为:"; echo ($bool ? 'true' : 'false'); ?>
輸出:
我們也發現,當兩個運算子的運算元相同時,但它們的運算結果卻是不一樣的,這是為什麼?
因為,"&&"運算子的優先權高於"="運算子的優先權;而「and」的優先權會低於運算子「=」。
在第一個表達式「$bool = true && false」中,先計算true && false,計算結果為false,然後把這個結果賦值給了$bool ;因此,$bool 的值為:false。
在第二個表達式“$bool = true and false”中,首先是執行“$bool = true”,此時$bool的值為true;然後執行“$bool and false”。因為「and 」操作雖然在內部執行了但未分配,因此$ bool的值依然為true。
總結:PHP運算子"and"和「&&」的根本差異在於它們的優先順序差異;以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。
以上是PHP運算子'and'和「&&」的簡單比較的詳細內容。更多資訊請關注PHP中文網其他相關文章!