工具用的順手嗎?
你的回饋能幫助我們做得更好
PHP運算子優先順序與結合性快速查詢,程式設計開發輔助工具。
此表是收錄語法的參考子集,不執行或驗證示例。數字是本站分組,不能替代所用語言版本的完整語法、型別和求值規則;例子保留原始程式碼與字面值。 參考來源
PHP 8.x 優先順序,包含 PHP 8.5 新增的 |>。等級越小結合越緊。結合性不代表運算元求值順序;不明確時請使用括號。
clone物件建立不適用对对象执行浅拷贝,返回新的对象实例。
$copy = clone $obj;new物件建立不適用调用类的构造方法创建一个新对象。
$user = new User();**冪運算右結合返回左操作数的右操作数次幂,右结合。
2 ** 10+expr一元與型別轉換不適用返回操作数的数值并触发类型转换。
+ $x-expr一元與型別轉換不適用返回操作数的相反数。
- $x++expr一元與型別轉換不適用先将变量加 1,再返回新值。
++$i--expr一元與型別轉換不適用先将变量减 1,再返回新值。
--$iexpr++一元與型別轉換不適用返回当前值后将变量加 1。
$i++expr--一元與型別轉換不適用返回当前值后将变量减 1。
$i--~一元與型別轉換不適用对整数按位取反。
~ $mask(int)一元與型別轉換不適用将表达式强制转换为整数类型。
(int) "42"(float)一元與型別轉換不適用将表达式强制转换为浮点数类型。
(float) "3.14"(string)一元與型別轉換不適用将表达式强制转换为字符串类型。
(string) 123(array)一元與型別轉換不適用将表达式强制转换为数组类型。
(array) $obj(object)一元與型別轉換不適用将表达式强制转换为对象类型。
(object) ['a' => 1](bool)一元與型別轉換不適用将表达式强制转换为布尔类型。
(bool) $value@一元與型別轉換不適用抑制表达式产生的错误信息(不影响 Fatal Error)。
@file_get_contents('x')instanceof型別判斷左結合判断对象是否为指定类、接口或其子类的实例。
$obj instanceof User!邏輯非不適用对布尔值取反,true 变 false。
!$ready*乘除取餘左結合两个操作数相乘。
$a * $b/乘除取餘左結合两个数相除,整数除非整除时结果为浮点数。
10 / 3%乘除取餘左結合返回相除的余数。
10 % 3+加減運算左結合数值相加;对数组则保留左侧键执行合并。
$a + $b-加減運算左結合两个数相减。
$a - $b<<位移運算左結合整数按位左移指定位数。
1 << 3>>位移運算左結合整数按位右移指定位数。
16 >> 2.字串拼接左結合PHP 8 起优先级低于 + 和 - ,用于拼接字符串。
"Hi " . $name|>管道(PHP 8.5+)左結合Pass the left expression to the callable on the right. Available from PHP 8.5.
"hello" |> strtoupper(...)<關係運算無結合性左小于右返回 true。
$a < $b<=關係運算無結合性左小于或等于右返回 true。
$a <= $b>關係運算無結合性左大于右返回 true。
$a > $b>=關係運算無結合性左大于或等于右返回 true。
$a >= $b==相等比較無結合性进行类型转换后判断是否相等。
0 == '0'!=相等比較無結合性等价于 <>,类型转换后判断不相等。
$a != $b===相等比較無結合性类型与值都相等才返回 true。
0 === 0!==相等比較無結合性类型不同或值不同时返回 true。
$a !== $b<>相等比較無結合性等价于 !=,类型转换后判断不相等。
$a <> $b<=>相等比較無結合性PHP 7+ 三向比较:左小返回 -1,相等返回 0,左大返回 1。
$a <=> $b&按位運算左結合整数按位与;变量前用作引用赋值。
$a & $b^按位運算左結合对整数按位执行异或运算。
$a ^ $b|按位運算左結合对整数按位执行或运算。
$a | $b&&短路邏輯左結合短路求值:左侧为 false 时不计算右侧。
$a && $b||短路邏輯左結合短路求值:左侧为 true 时不计算右侧。
$a || $b??Null 合併右結合左侧为 null 或未定义时返回右侧值,否则返回左侧。
$name ?? '匿名'? :三元條件無結合性条件为 true 返回中间值,否则返回最后值(PHP 8 起非结合)。
$x > 0 ? 1 : -1=賦值運算右結合将右侧的值赋给左侧变量。
$x = 10+=賦值運算右結合$x = $x + $y 的简写。
$x += 1-=賦值運算右結合$x = $x - $y 的简写。
$x -= 1*=賦值運算右結合$x = $x * $y 的简写。
$x *= 2**=賦值運算右結合$x = $x ** $y 的简写。
$x **= 2/=賦值運算右結合$x = $x / $y 的简写。
$x /= 2.=賦值運算右結合$x = $x . $y 的简写。
$msg .= ' done'%=賦值運算右結合$x = $x % $y 的简写。
$x %= 3&=賦值運算右結合$x = $x & $y 的简写。
$x &= 0xFF|=賦值運算右結合$x = $x | $y 的简写。
$x |= 0x01^=賦值運算右結合$x = $x ^ $y 的简写。
$x ^= $mask<<=賦值運算右結合$x = $x << $y 的简写。
$x <<= 2>>=賦值運算右結合$x = $x >> $y 的简写。
$x >>= 2??=賦值運算右結合PHP 7.4 起,若左侧为 null 或未定义则将右侧赋给它。
$cfg['port'] ??= 80yield from產生器不適用Delegate generator values to another iterable.
yield from $items;=> (yield)產生器不適用Associate a yielded key with its value. This row is not the array-literal or arrow-function use of =>.
yield $key => $value;yield產生器不適用Yield a value from a generator.
yield $value;print輸出不適用Output a string using the print expression.
print $text;and關鍵字邏輯左結合等价于 && 但优先级更低,常用于赋值后判断。
$ok = doX() and doY()xor關鍵字邏輯左結合两个布尔值不同返回 true。优先级低于 and。
$a xor $bor關鍵字邏輯左結合等价于 || 但优先级更低,常用于错误回退。
$fp = fopen($f, 'r') or die('open fail')include檔案包含不適用Evaluate a file. Include expressions have the low precedence documented by the PHP manual.
include $file;include_once檔案包含不適用Include a file once during a script execution.
include_once $file;require檔案包含不適用Evaluate a required file; failure has stronger error behavior than include.
require $file;require_once檔案包含不適用Require a file once during a script execution.
require_once $file;fn (...) =>箭頭函式不適用Define an arrow function expression.
fn($x) => $x + 1throw拋出例外不適用Throw an exception; usable as an expression in PHP 8.
throw new RuntimeException("error");概覽
了解工具能解決的問題、計算或處理邏輯,以及資料邊界。
PHP 運算子優先順序查詢器適合在閱讀或檢視程式碼時,快速定位單一運算子。可搜尋符號、名稱、說明、範例或優先順序數字,並依運算子分類及結合性篩選;結果會列出條目名稱、說明、範例與優先順序。這是靜態參考表,不會解析或執行貼上的 PHP 程式碼。
優先順序說明不同運算子相鄰時如何分組。例如乘法優先於加法,1 + 5 * 3 會分組為 1 + (5 * 3)。同一優先順序的運算子則要看結合性:減法左結合,$a - $b - $c 分組為 ($a - $b) - $c;賦值右結合,$a = $b = $c 分組為 $a = ($b = $c)。優先順序談的是語法分組,不等於每個運算元實際計算的先後。
表格以較小的級別數字代表較高優先順序,並依級別排列。PHP 版本會影響規則:PHP 8 起,字串連接點號 . 的優先順序低於加法與減法,三元運算子 ? : 則為非結合;PHP 8.5 起另有管道運算子 |>。請依專案實際使用的 PHP 版本核對條目。
條目中的名稱與說明是參考資料,介面篩選標籤則提供繁體中文。部分記錄文字可能沿用原有語言;遇到語意不清或與目標版本不一致的內容,請以官方手冊為準。
指南
依步驟完成操作,並透過範例核對輸入與結果。
可輸入運算子符號(例如 ??)、名稱、說明中的詞、範例片段或級別數字。清除文字即可移除這項條件。
分類可用來聚焦算術、比較、邏輯、賦值、字串連接等條目;結合性可選左結合、右結合、無結合性或不適用。條件可以同時使用,結果只保留符合全部條件的項目。
查看分組後的級別、結合性、說明與範例。要複製符號或範例,可使用該條目旁的複製操作;將結果放回程式碼前,仍需確認專案 PHP 版本及運算元語境。
例如要檢查字串連接,搜尋 . 並選擇「字串拼接」;若想比較低優先順序的邏輯關鍵字,搜尋 and 並對照賦值類別。搜尋框會比對符號、名稱、說明、範例與級別,不接受整段表示式作為語法分析輸入。
情境
查看這項工具在不同工作與生活流程中的用法。
看到算術、比較與邏輯運算混在條件式中時,依序查相關符號的級別和結合性,再建議用括號清楚標出預期分組。
維護舊程式時,特別核對點號連接與加減同現的表示式,以及巢狀三元寫法;以升級目標版本的官方規則為準。
初學者可先篩選一種分類,比較符號、結合性和簡短範例,再把查到的分組方式套回自己的程式碼。
問答
集中解答常見疑問與容易混淆的問題。
不行。查詢器只會用輸入文字篩選參考條目,不會解析或執行表示式。請搜尋其中的運算子,再用目標 PHP 版本執行程式或檢查語法。
不一定。優先順序用來決定表示式如何分組,不普遍規定各運算元的實際求值先後。尤其含有函式呼叫或其他副作用時,不要只根據優先順序推斷執行順序。
|>?先清除其他分類或結合性篩選,再以符號搜尋。此條目適用 PHP 8.5 及之後版本;較舊 PHP 版本不支援此語法。
and 和 && 可以互換嗎?兩者都表示邏輯「且」,但優先順序不同。and 的優先順序低於賦值,&& 則較高,因此與賦值混用時分組可能不同;請查表並用括號明確表達意圖。
須知
使用前了解適用範圍、結果限制與必要提醒。
查詢器提供的是靜態條目索引,內容不會依你的專案版本自動切換,也不會驗證程式是否可執行。運算子符號可能因語境而有不同用途;搜尋到相同字元不代表語法角色完全相同。若涉及 PHP 版本差異、型別轉換或副作用,請核對官方手冊的相關章節,並在實際目標版本中測試。對複雜表示式使用括號,通常能讓分組意圖更容易讀懂。
|> 管道運算子;核對日期:2026-09-30。閱讀 PHP 8.5 官方發布公告推薦
查找相關工具、專題與可用的 API 能力。