php 巧用逻辑运算符,php的神奇逻辑运算符
@(小乖)今天再讀php文檔,看到邏輯運算符這邊又發現了新天地呀,
之前在探究c語言的邏輯運算符中,我們得到了一些結論
而在php中,&& ||與and or 同時存在,并且表示的含義是一樣,但是不同的是優先級
接下來復制官方文檔的一個實例<?php
// --------------------
// foo() 根本沒機會被調用,被運算符“短路”了
$a = (false && foo());
$b = (true || foo());
$c = (false and foo());
$d = (true or foo());
// --------------------
// "||" 比 "or" 的優先級高
// 表達式 (false || true) 的結果被賦給 $e
// 等同于:($e = (false || true))
$e = false || true;
// 常量 false 被賦給 $f,true 被忽略
// 等同于:(($f = false) or true)
$f = false or true;
var_dump($e, $f);
// --------------------
// "&&" 比 "and" 的優先級高
// 表達式 (true && false) 的結果被賦給 $g
// 等同于:($g = (true && false))
$g = true && false;
// 常量 true 被賦給 $h,false 被忽略
// 等同于:(($h = true) and false)
$h = true and false;
var_dump($g, $h);
?>
bool(true)
bool(false)
bool(false)
bool(true)
**簡單的來說,優先級 "||" > '='> "or"
"&&" > '='> "and"**
但是無論如何php與c一樣,并沒有js般的邏輯運算符作用
and or 與=共存時,只獲取and和or的前面的值,可能用true和fasle還不夠形象
接下來我們用具體的值,就取數字來研究$a = 2 && 3;//$a = 2 && 3; 同
echo $a;
答案是:
此處內容需要評論回復后方可閱讀。
那么你就會問了,那and 和or ,前面我們說它跟等號一起,實際就會截取and 和or 前面地值$c = 2 and 3;
echo $c; //2
$d = 2 or 3;
echo $d;//2
因此這種形式下往往用來混淆加密,and 和 or 只是減弱了代碼地可讀性,論如何寫出他人維護不了的代碼 --@(捂嘴笑)
好,如果你覺得腦子還沒有亂的話,繼續接著看@(茶杯)
那么如果沒有等號,and 和or ,&& ,||又怎么樣呢?echo 2 && 3;
echo 2 || 3;
echo 2 and 3;
echo 2 or 3;
結果都是1,也就是說:
&& 和 ||作用不言而喻,就是沒有js那樣的作用,and 和 or 也是,但是沒有等號的存在,and 和 or 就要比較下兩邊的bool了(同樣,非0為真
總結,看完了文章,你只要記住沒有js那樣的作用
有等號在的and or 就取and 和 or 前面的值
&& 和 || 與沒有等號的and or 一樣,返回true 還是false
增加$stmt = false or die ("Failed to prepared the statement!");
這種情況會輸出Failed to prepared the statement!
這是為什么呢?
這是die的作用,看到false,就輸出證明死了
總結
以上是生活随笔為你收集整理的php 巧用逻辑运算符,php的神奇逻辑运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sa是什么岗位_服务顾问SA在维修企业扮
- 下一篇: php属性未定义,PHP-警告-未定义的