工具用的顺手吗?
你的反馈能帮助我们做得更好
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");概览
了解工具能解决的问题、计算或处理逻辑,以及数据边界。
运算符优先级描述表达式中不同运算符如何结合。例如乘法优先于加法,因此 1 + 5 * 3 按 1 + (5 * 3) 分组。结合性则决定同一优先级的运算符如何分组;减法通常从左向右,赋值从右向左。括号可明确指定分组,也通常能提高代码可读性。
查询器列出运算符符号、名称、说明、示例、优先级序号、分类和结合性。可按符号或名称搜索,也可按类别及结合性筛选;结果按优先级序号排列。搜索是筛选参考列表,不会解析或执行输入的完整PHP代码。
PHP版本会影响部分规则。官方手册记录:PHP 8起,字符串连接点号 . 的优先级低于加减运算符;三元运算符变为非结合。混用算术与字符串连接、嵌套三元等写法时,显式括号比依赖隐式优先级更清楚。参阅PHP官方优先级表中的完整规则和版本变更说明。
指南
按步骤完成操作,并通过示例核对输入与结果。
输入符号、名称、说明文字、示例片段或优先级序号;清空检索词可看当前筛选下的完整列表。
按算术、比较、逻辑、赋值等类别筛选,也可选择左结合、右结合或非结合规则。条件可以组合。
阅读目标条目的说明和示例,再按项目使用的PHP版本核对手册。需要改变默认分组时加入括号。
优先级决定表达式分组,不普遍规定每个部分的实际求值顺序。表达式包含递增、函数调用或其他副作用时,不应仅凭优先级推断执行先后。工具适合快速定位条目;版本迁移和复杂表达式仍需查对应版本文档并运行代码验证。
在 1 + 5 * 3 中先结合乘法,可写成 1 + (5 * 3)。在 $a = $b = $c 中赋值从右向左结合,等价于 $a = ($b = $c)。遇到逻辑运算和赋值混用、类型转换或字符串连接时,不妨把想要的分组用括号直接写出,再运行测试确认值和副作用。例子用于解释分组概念,并不意味着所有情况下都应省略括号。
查询结果中序号较小的条目位于列表较高优先级位置,同一优先级组内再由运算符规则说明结合方式。符号相同但语境不同的用法也值得留意,例如加号可用于数值运算或数组合并,按位与符号在不同语境中也可能承担其他语法角色。只看字符本身不足以理解表达式含义,应结合操作数类型和上下文阅读。
场景
查看这项工具在不同工作与生活流程中的用法。
审查者遇到混合算术、比较与逻辑运算的条件表达式时,核对优先级并建议用括号消除歧义。
维护旧项目的开发者重点检查点号连接与加减同现的表达式,以及嵌套三元写法,并结合目标版本确认。
学习者筛选同类运算符,比较符号、解释与示例,熟悉由高到低的查阅方式。
问答
集中解答高频疑问与容易混淆的问题。
不能。工具只按符号、名称、类别和结合性筛选参考列表,不执行代码。
不一定。优先级规则含版本变化,例如PHP 8对字符串连接和三元运算符的调整;应结合项目版本查看官方文档。
高优先级决定分组,并不普遍决定求值顺序。含副作用的表达式应避免依赖未明确保证的执行顺序。
须知
使用前了解适用范围、结果限制与必要提醒。
这是静态参考表,不能代替当前PHP版本的官方语言手册、语法检查或运行测试。若查不到符号,请查阅官方手册完整章节。涉及类型转换、异常或副作用的表达式,应显式加括号并在目标版本验证。
推荐
查找相关工具、专题与可用的 API 能力。