php基礎語法之邏輯運算

邏輯運算子比較簡單,是我們人類進行邏輯思考時的一種方式。

講出很多吊絲男士的心願:某一個女人,要不長得漂亮、要不比我有錢我就娶她。如果一個條件都沒有,那就算了。

上面的這種不評價好壞的心理狀態,只是來說明這就是典型的電腦思維。

美麗這個條件成立(true) 或 財富這個條件成立(true),則執行娶她的行為和動作。否則,就不娶這個女孩。

那我們把這些邏輯關於進行了歸納和總結,下面表格中的:$x為條件一,$y 為條件二。進行說明:

邏輯與,中文解釋為並且。可理解為,$x 且 $y 都為真(true)的時候執行。

邏輯或,中文解釋為或。可以理解為,$x或$y其中一個為真(true)的時候執行。

邏輯非,中文解釋取反。如果$x的執為假(false),進行一次非操作。非假(false)就為真了,就可以執行真區間了。反推true,則執行假區間了。

邏輯異或,若$x和$y相同則為false,則不相同則為true。

##$ x and $y邏輯與(並且關係)$x 和$y 為真則回傳真$x && $y同上同上$x or $y邏輯或$x,$y均為false時為假,其他情況全為真$a||$b同上同上!$x邏輯非取反,即true變成false,false變成true$x xor $y 邏輯異或相同取false,相異為true

那我們來舉幾個例子來試試,你自己也要記得多做幾次實驗(可結合3.4.4這一章中的比較運算子自己寫幾個例子喲)。

邏輯與:

<?php

$x = true;
$y = false;
//逻辑与(并且),要求两个都为true才执行真区间,所以代码中执行假区间
if($x && $y){
   echo '执行了真区间';
}else{
   echo '执行了假区间';
}
?>

邏輯或:

<?php

$foo = false;
$bar = true;
//逻辑或,有一个为真则为真
if($foo || $bar){
   echo '执行真区间';
}else{
   echo '执行假区间';
}

?>

邏輯非:

<?php

$foo = false;

//逻辑非,把false变为了true
if(!$foo){
   echo '执行真区间';
}else{
   echo '执行假区间';
}

?>

【重點知識】短路

#短路就是採用一個懶人模式來思考問題。

邏輯與的特性是:兩邊為true即為true,其他情況皆為假。
邏輯或的特性是:兩邊為假均為假,其他情況全為真。

我們現在把自己想像成一個懶漢,非常非常懶。來思考邏輯與和邏輯或。可不可以這樣理解:
邏輯與:如果前面第一個條件為false了,後面就可以不用執行了。

用程式碼表示:if($x && $y) 如果$x已經為false了,後面的$y 就沒有執行必要了。

邏輯或:前面第一個條件為true了,後面就不用執行了。

用程式碼表示:if($x || $y) 如果$x已經為true了,後面的$y 就沒有執行必要了。

我們寫段程式碼來證明一下:

<?php

$x = false;
$y = 2;
if($x && $y++){
   echo '真';
}else{
   echo '假';
}
//结果还为2,说明没有执行$y++
echo $y;
?>

程式碼如下,將兩個&符改為一個&符試試:

<?php

$x = false;
$y = 2;
if($x & $y++){
   echo '真';
}else{
   echo '假';
}
//再看看结果
echo $y;
?>

我們來看看短路的邏輯或:

<?php

$x = true;
$y = 2;
if($x || $y++){
   echo '真';
}else{
   echo '假';
}
//结果,因为$x已经为true了,肯定执行真区间没有必要执行$y++了
echo $y;
?>

改成一個| 再看看執行結果

<?php

$x = true;
$y = 2;
if($x | $y++){
   echo '真';
}else{
   echo '假';
}
//自己运行对比结果
echo $y;
?>

透過上例我們知道了&&與&的區別,||和|的區別。我們也了解了什麼是短路。那我們在什麼地方可以用到短路呢?有一些奇怪的寫法,我們必須了清楚。其實就是基礎語法的再應用。
回顧3.3.1最後一段內容:

<?php
//如果为defined('AUTH')存在AUTH常量则为true,不访问后面的exit了。如果为false则执行exit
defined('AUTH') or exit('存在安全因素不准访问');
?>

上面的一段程式碼就是典型的短路應用的程式碼


exit 的意思是指在此停止運行,退出。後面的PHP程式碼不再執行了。它有兩種用法:
1,直接exit; 就是直接退出
2,exit('提示內容'),退出的時候還給出一段提示內容

exit
讀音:[ˈeksɪt]
解釋:退出

繼續學習
||
<?php $x = true; $y = 2; if($x | $y++){ echo '真'; }else{ echo '假'; } //自己运行对比结果 echo $y; ?>
範例說明詳細說明