首頁 後端開發 php教程 php運算子優先順序詳解

php運算子優先順序詳解

Apr 19, 2017 pm 04:37 PM

在我們前面講PHP邏輯運算子的時候,提到了PHP運算子的優先級,所謂的運算子優先級,指的是在表達式中哪一個運算子先計算,哪一個後計算,就好像,表達式 1 + 5 * 3 的結果

是 16 而不是 18 是因為乘號(「*」)的優先權比加號(「+」)高。如果有需要的話,可以用括號來強制改變優先權。例如:(1 + 5) * 3 的值為 18。

PHP的運算子在運算中遵循的規則是:優先順序高的操作先執行,優先順序低的操作後執行,如果同一優先級,則按照從左到右的順序進行,例如,"-"是左聯的,那麼 1 - 2 - 3 就等同於 (1 - 

2) - 3 且結果是 -4. 另外一方面,"="是右聯的,所以$a = $b = $c 等同於 $a = ($b = $c)。

php運算子優先順序詳解括號內的運算子最先執行,括號的使用,即使在不是必要的場合下,透過括號的配對來明確標明運算順序,而非靠運算子優先順序和結合性來決定,可以提高程式碼的可讀性。

表按照優先權從高到低列出了運算子。同一行中的運算子具有相同優先權,此時它們的結合方向決定求值順序。

類型#左*.#算術運算子與字串運算子            >>  #            ##>=##==            !====< ;=>比較運算子&位元運算符與引用^位元運算子|位元運算子左右                                      .=                                       賦值運算子
結合方向 運算子 附加資訊
clone new clone和new
#左 [ array ()
** #算術運算子
++            --#            ~        #            (string)            (array)            (object)#        #  ##(object)# #類型和遞增/遞減instanceof
!邏輯運算子
           /            % #算術運算子
+       # #-       ##-            
#左#左
位元運算子
>            #>=
##>= ##>
                     #===           
&&邏輯運算子#||##邏輯運算子??比較運算子
#? : 三元運算子
=+=            -=*=
%=&=            |=>>=

and

#邏輯運算子


###xor#########邏輯運算子############左#########or #########邏輯運算子######################這麼多的優先級別,如果想都記得很清楚,是不太現實的,也沒有必要,如果寫的表達式很複雜,而且包含了較多的運行符,不放多使用括號,想下面這樣###:######
<?php
$a and (($b !=$c) or (5*(50-$d)));
?>
登入後複製
####### ##這樣就能減少出現邏輯錯誤的可能######有有時使用括號可以增強程式碼的可讀性。例如,下面這樣:###
<?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4

//三元运行的结合
$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2

$a = 1;
$b = 2;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5


?>
登入後複製
#########

以上是php運算子優先順序詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在Windows 11中安全地設定應用程式的高優先權? 如何在Windows 11中安全地設定應用程式的高優先權? May 06, 2023 pm 06:28 PM

Windows透過為它們分配優先級,在將系統資源分配給最需要它的進程和程序方面做得非常好。您安裝的大多數應用程式都可以在預設的「正常」優先權等級下完美運作。 然而,有時,您可能需要以高於預設正常水平的水平運行程序,例如游戲,以提高它的性能。但這樣做是有代價的,而且是一筆值得深思的交易。 當您將應用程式設定為高優先級時會發生什麼? Windows執行不同的進程和程式時總共有六個優先權——低、低於正常、正常、高於正常、高和即時。 Windows將根據它們的優先順序對應用程式進行排名和排隊。優先權越高,應用

在 Windows 11 上停用通知的 8 大方法(和 3 個提示) 在 Windows 11 上停用通知的 8 大方法(和 3 個提示) May 05, 2023 pm 12:49 PM

通知是提高生產力的好工具,但有時會讓人分心。無論您是要完全停用通知還是要為選定的應用程式停用通知,此頁面都是您所需要的。我們還將了解如何使用FocusAssist自動停用和啟用通知。此外,如果「設定」應用程式不適合您,您可以使用命令提示字元、註冊編輯器和群組原則編輯器等工具,使用更極客的方式來停用通知。請查看以下教學課程,了解在Windows11上停用通知的7種方法。為什麼要在Windows11上停用通知?禁用通知有其各種優點,其中一些已在下面列出。但是,請記住,禁用重要應用程式的通知可能會

如何在 Windows 11 的工作管理員中變更優先權 如何在 Windows 11 的工作管理員中變更優先權 May 17, 2023 am 10:26 AM

什麼是進程優先權?計算機與其創造者並無太大差異。儘管看起來他們同時在處理多項任務,但實際上他們是自發性地在不同任務之間兼顧。但並非所有進程或程序都可以平等地分配資源。 重要的進程,例如保持系統盡可能平穩運行所需的進程,被賦予高優先級,而那些僅在外圍工作的進程可以被分配較低的優先權。這有助於系統即使在承受大量壓力時也能順利運作。  什麼是優先權? 進程有6個不同的優先權。這些如下:低—— 這是最低的優先順序。具有「低」優先權的進程只有在所有其他任務完成後才會獲得必要的資源。 BelowNorma

如何在 Windows 11 中為應用程式或進程開啟或關閉效率模式 如何在 Windows 11 中為應用程式或進程開啟或關閉效率模式 Apr 14, 2023 pm 09:46 PM

Windows 11 22H2中的新工作管理員對進階使用者來說是個福音。現在,它透過附加資料提供更好的 UI 體驗,以密切關注您正在運行的流程、任務、服務和硬體元件。如果您一直在使用新的任務管理器,那麼您可能已經注意到新的效率模式。它是什麼?它是否有助於提高 Windows 11 系統的效能?讓我們來了解一下! Windows 11 中的效率模式是什麼?效率模式是任務管理器中的一

c語言開根號運算子是什麼 c語言開根號運算子是什麼 Mar 06, 2023 pm 02:39 PM

在c語言中,沒有開根號運算符,開根號使用的是內建函數“sqrt()”,使用語法“sqrt(數值x)”;例如“sqrt(4)”,就是對4進行平方根運算,結果為2。 sqrt()是c語言內建的開根號運算函數,其運算結果是函數變數的算術平方根;此函數既不能運算負數值,也無法輸出虛數結果。

Linux進程優先權調整方法詳解 Linux進程優先權調整方法詳解 Mar 15, 2024 am 08:39 AM

Linux程序優先級調整方法詳解在Linux系統中,進程的優先順序決定了其在系統中的執行順序和資源分配。合理調整進程的優先順序可以提高系統的效能和效率。本文將詳細介紹Linux中如何調整進程的優先級,並提供具體的程式碼範例。一、進程優先權概述在Linux系統中,每個行程都有一個與之相關聯的優先權。優先權的範圍一般是-20到19,其中-20表示最高優先權,19表

golang 報錯:「invalid use of … operator」 如何解決? golang 報錯:「invalid use of … operator」 如何解決? Jun 24, 2023 pm 05:54 PM

對於Golang開發者來說,「invaliduseof…operator」是一個常見的報錯。這個報錯通常會在使用變長參數函數時出現。它在編譯時就會被檢測出來,並指出哪些部分有問題。這篇文章將介紹如何解決這個報錯。一、什麼是變長參數函數變長參數函數也稱為可變參數函數,是Golang語言中的一種函數型別。使用變長參數函數可以像如下方式定義多個

如何在 Windows 11 上自訂通知設定 如何在 Windows 11 上自訂通知設定 May 02, 2023 pm 03:34 PM

自訂常規通知設定讓我們從通知設定的基礎開始。首先,如果您想在Windows11上進行通知設置,有兩種方法可以做到。最快的方法是右鍵單擊任務欄一角的日期和時間部分,然後選擇通知設定。或者,您可以使用“開始”功能表開啟“設定”應用程序,然後在“系統”部分(預設為開啟)中選擇“通知”。在這裡,您會看到通知設定的概覽。您可以完全停用通知,或按一下第一個選項Notifications以展開下拉式功能表。此選單有一些附加選項,例如關閉通知聲音。您也可以選擇是否要在鎖定畫面上顯示通知,包括提醒和來電的特定設定。

See all articles