邏輯運(yùn)算子比較簡(jiǎn)單,是我們?nèi)祟愡M(jìn)行邏輯思考時(shí)的一種方式。
講出很多吊絲男士的心願(yuàn):某一個(gè)女人,要不長(zhǎng)得漂亮、要不比我有錢(qián)我就娶她。如果一個(gè)條件都沒(méi)有,那就算了。
上面的這種不評(píng)價(jià)好壞的心理狀態(tài),只是來(lái)說(shuō)明這就是典型的電腦思維。
美麗這個(gè)條件成立(true) 或 財(cái)富這個(gè)條件成立(true),則執(zhí)行娶她的行為和動(dòng)作。否則,就不娶這個(gè)女孩。
那我們把這些邏輯關(guān)於進(jìn)行了歸納和總結(jié),下面表格中的:$x為條件一,$y 為條件二。進(jìn)行說(shuō)明:
邏輯與,中文解釋為並且??衫斫鉃?,$x 且 $y 都為真(true)的時(shí)候執(zhí)行。
邏輯或,中文解釋為或??梢岳斫鉃?$x或$y其中一個(gè)為真(true)的時(shí)候執(zhí)行。
邏輯非,中文解釋取反。如果$x的執(zhí)為假(false),進(jìn)行一次非操作。非假(false)就為真了,就可以執(zhí)行真區(qū)間了。反推true,則執(zhí)行假區(qū)間了。
邏輯異或,若$x和$y相同則為false,則不相同則為true。
範(fàn)例 | 說(shuō)明 | 詳細(xì)說(shuō)明 |
---|
##$ x and $y | 邏輯與(並且關(guān)係) | $x 和$y 為真則回傳真 |
$x && $y | 同上 | 同上 |
$x or $y | 邏輯或 | $x,$y均為false時(shí)為假,其他情況全為真 |
$a||$b | 同上 | 同上 |
!$x | 邏輯非 | 取反,即true變成false,false變成true |
$x xor $y | 邏輯異或 | 相同取false,相異為true |
那我們來(lái)舉幾個(gè)例子來(lái)試試,你自己也要記得多做幾次實(shí)驗(yàn)(可結(jié)合3.4.4這一章中的比較運(yùn)算子自己寫(xiě)幾個(gè)例子喲)。
邏輯與:
<?php
$x = true;
$y = false;
//邏輯與(并且),要求兩個(gè)都為true才執(zhí)行真區(qū)間,所以代碼中執(zhí)行假區(qū)間
if($x && $y){
echo '執(zhí)行了真區(qū)間';
}else{
echo '執(zhí)行了假區(qū)間';
}
?>
邏輯或:
<?php
$foo = false;
$bar = true;
//邏輯或,有一個(gè)為真則為真
if($foo || $bar){
echo '執(zhí)行真區(qū)間';
}else{
echo '執(zhí)行假區(qū)間';
}
?>
邏輯非:
<?php
$foo = false;
//邏輯非,把false變?yōu)榱藅rue
if(!$foo){
echo '執(zhí)行真區(qū)間';
}else{
echo '執(zhí)行假區(qū)間';
}
?>
【重點(diǎn)知識(shí)】短路
#短路就是採(cǎi)用一個(gè)懶人模式來(lái)思考問(wèn)題。
邏輯與的特性是:兩邊為true即為true,其他情況皆為假。
邏輯或的特性是:兩邊為假均為假,其他情況全為真。
我們現(xiàn)在把自己想像成一個(gè)懶漢,非常非常懶。來(lái)思考邏輯與和邏輯或??刹豢梢赃@樣理解:
邏輯與:如果前面第一個(gè)條件為false了,後面就可以不用執(zhí)行了。
用程式碼表示:if($x && $y) 如果$x已經(jīng)為false了,後面的$y 就沒(méi)有執(zhí)行必要了。
邏輯或:前面第一個(gè)條件為true了,後面就不用執(zhí)行了。
用程式碼表示:if($x || $y) 如果$x已經(jīng)為true了,後面的$y 就沒(méi)有執(zhí)行必要了。
我們寫(xiě)段程式碼來(lái)證明一下:
<?php
$x = false;
$y = 2;
if($x && $y++){
echo '真';
}else{
echo '假';
}
//結(jié)果還為2,說(shuō)明沒(méi)有執(zhí)行$y++
echo $y;
?>
程式碼如下,將兩個(gè)&符改為一個(gè)&符試試:
<?php
$x = false;
$y = 2;
if($x & $y++){
echo '真';
}else{
echo '假';
}
//再看看結(jié)果
echo $y;
?>
我們來(lái)看看短路的邏輯或:
<?php
$x = true;
$y = 2;
if($x || $y++){
echo '真';
}else{
echo '假';
}
//結(jié)果,因?yàn)?x已經(jīng)為true了,肯定執(zhí)行真區(qū)間沒(méi)有必要執(zhí)行$y++了
echo $y;
?>
改成一個(gè)| 再看看執(zhí)行結(jié)果
<?php
$x = true;
$y = 2;
if($x | $y++){
echo '真';
}else{
echo '假';
}
//自己運(yùn)行對(duì)比結(jié)果
echo $y;
?>
透過(guò)上例我們知道了&&與&的區(qū)別,||和|的區(qū)別。我們也了解了什麼是短路。那我們?cè)谑颤N地方可以用到短路呢?有一些奇怪的寫(xiě)法,我們必須了清楚。其實(shí)就是基礎(chǔ)語(yǔ)法的再應(yīng)用。
回顧3.3.1最後一段內(nèi)容:
<?php
//如果為defined('AUTH')存在AUTH常量則為true,不訪問(wèn)后面的exit了。如果為false則執(zhí)行exit
defined('AUTH') or exit('存在安全因素不準(zhǔn)訪問(wèn)');
?>
上面的一段程式碼就是典型的短路應(yīng)用的程式碼
exit 的意思是指在此停止運(yùn)行,退出。後面的PHP程式碼不再執(zhí)行了。它有兩種用法:
1,直接exit; 就是直接退出
2,exit('提示內(nèi)容'),退出的時(shí)候還給出一段提示內(nèi)容
exit
讀音:[?eks?t]
解釋:退出
<?php
$x = true;
$y = 2;
if($x | $y++){
echo '真';
}else{
echo '假';
}
//自己運(yùn)行對(duì)比結(jié)果
echo $y;
?>
課件暫不提供下載,工作人員正在整理中,後期請(qǐng)多關(guān)注該課程~
看過(guò)本課程的同學(xué)也在學(xué)習(xí)