首頁  >  文章  >  後端開發  >  php邏輯運算子&和&&以及&&和||的使用區別

php邏輯運算子&和&&以及&&和||的使用區別

伊谢尔伦
伊谢尔伦原創
2017-06-21 14:58:375905瀏覽

邏輯運算子無非是將值進行邏輯運算。 (&&)or(||)」這兩種運算子在程式中可以加快PHP程式碼的運行速度。

首先看一段程式碼:

<?php   
    $test="李四";   
    $test=="张三"&&$test="张三来了";   
    echo $test;  //输出“李四”   
    $test="李四";   
    $test=="张三"||$test="张三不在这里";   
    echo $test;  //输出“张三不在这里”   
?>

 為什麼會產生這樣的結果呢?

 在參與邏輯運算的兩邊表達式中,是依照從左到右順序運算的。為假。邏輯或就不同了:只要一個為真那整個表達式就為真。 所以,在左邊為假的情況下,還要運行右邊的表達式判斷。感到奇怪了。掌握這一點的關鍵就是表達式的運行方向,是從左到右。函數,但不能是一系列的語句組合或輸出語句。跳過,不執行y;

對於「或」(||) 運算 :   x||y 當x為true時,直接跳過,不執行y。異同

<?php
$a=10;
if($a>4 && (++$a>10))
{
}
//输出结果为11.
echo $a;
?>
<?php
$a=10;
if($a>4 and (++$a>10))
{
}
//输出结果为11.
echo $a;
?>
**************************************************************
<?php
$a=10;
if($a>4 && (++$a<10))
{
}
//输出结果为11.
echo $a;
?>
<?php
$a=10;
if($a>4 & (++$a<10))
{
}
//输出结果为11.
echo $a;
?>
*********************************************************
<?php
$a=10;
if($a<4 && (++$a>10))
{
}
//输出结果为10.
echo $a;
?>
<?php
$a=10;
if($a<4 & (++$a>10))
{
}
//输出结果为11.
echo $a;
?>
*******************************************************************
<?php
$a=10;
if($a<4 && (++$a<10))
{
}
//输出结果为10.
echo $a;
?>
<?php
$a=10;
if($a<4 & (++$a<10))
{
}
//输出结果为11.
echo $a;
?>
*******************************************************************
<?php
// 下面的 sktest() 不被调用,原因是它们被运算符“短路”。
$a = (false && sktest());
$b = (true  || sktest());
$c = (false and sktest());
$d = (true  or  sktest());
// "||" 的优先级比 "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);
?>

以上是php邏輯運算子&和&&以及&&和||的使用區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn