日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

引言

我們經常在程序流程中進行邏輯判斷,與或非,用的是爐火純青,相信你也不少用。那么在php中,有兩個操作符非常接近,就是 | 和 ||,那么他們有什么區別呢?

3分鐘短文 | PHP位運算和邏輯運算,一個符號寫兩遍這么簡單?

 

本文就從幾個小栗子,說一說邏輯運算符,和位運算符那些恩愛糾纏。

學習時間

正好比PHP內的 & 和 && 的關系一樣,雙符號表示“短路”操作。什么意思呢,就好比下面這個條件判斷:

if(condition1 || condition2 || condition3)

如果 condition1 = true,那么后面的兩個condition根本不會進行檢查。效率是不是頓時高了起來?

假如寫成 | ,像下面這樣的判斷邏輯

if(condition1 | condition2 | condition3)

這個判斷會把 condition1,2,3 挨個執行一遍,不管 condition1到底是不是true。是不是有點浪費資源了!

所以說,不使用“短路”操作符,程序上下文是有一定風險的。比如下面的例子,檢查某個對象是否為空,且檢查其某個屬性值滿足某個條件:

if($class != null && $class->someVar < 20)

上面的寫法,如果 $class 本身就是 null,那么直接熔斷;只有 $class 不為空,才會執行接下來的屬性檢查條件。

如果是一個 & 號,會出現什么情況呢?

  • 如果 $class = null,直接拋出 NullReferenceException 異常;
  • 如果 $class != null,第一個條件通過,如果屬性 someVar 不存在,則拋出method不存在異常;

所以說,沒有短路機制,這個判斷條件跑偏了。

深入學習

其實對于 | 或 &,在PHP中是作為位操作符使用。下圖是PHP位操作符的意義:

3分鐘短文 | PHP位運算和邏輯運算,一個符號寫兩遍這么簡單?

 

位操作應用于二進制數據操作,比如:

A = 01010101
B = 10101010
A | B = 11111111

當然也可以是任何類型的數據,因為底層還是字節碼的按位操作。

寫在最后

本文通過操作符 | 和 || 的區別與使用,使大家能夠明白,位操作符與邏輯運算符的本質區別。以及邏輯運算符所具有的“短路”機制。

位操作在數據運算中很高效,但是不直觀。使用的時候要充分測試。

HAppy coding :-)

我是 @程序員小助手 ,持續分享編程知識,歡迎關注。

分享到:
標簽:運算 PHP
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定