如果这个工具帮到了你,可以请作者喝杯咖啡 ☕
PHP运算符优先级与结合性快速查询,编程开发辅助工具。
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.字符串拼接左结合PHP 8 起优先级低于 + 和 - ,用于拼接字符串。
"Hi " . $name<<位移运算左结合整数按位左移指定位数。
1 << 3>>位移运算左结合整数按位右移指定位数。
16 >> 2<关系运算无结合性左小于右返回 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'] ??= 80and关键字逻辑左结合等价于 && 但优先级更低,常用于赋值后判断。
$ok = doX() and doY()xor关键字逻辑左结合两个布尔值不同返回 true。优先级低于 and。
$a xor $bor关键字逻辑左结合等价于 || 但优先级更低,常用于错误回退。
$fp = fopen($f, 'r') or die('open fail')在PHP开发中,运算符优先级和结合性决定了表达式的求值顺序,错误理解可能导致意外结果。PHP运算符优先级查询器帮助你快速查找任何PHP运算符的优先级级别和结合方向,避免逻辑错误。工具基于PHP官方文档的运算符优先级表,输入运算符名称或符号即可显示其在完整优先级列表中的位置。
本工具提供的优先级数据基于PHP 8.x官方文档,不同版本可能略有差异,一般向后兼容。查询时不区分大小写,但逻辑运算符“and”“or”“xor”为小写。若运算符不存在会提示无结果。工具仅作参考,实际开发中复杂表达式建议使用括号提升可读性。
在PHP中,运算符优先级遵循严格的表格,结合性决定了同优先级运算符的求值顺序。例如表达式“$a - $b - $c”由于减号左结合,等价于“($a - $b) - $c”。而赋值运算符“=”右结合,使得“$a = $b = 5”等价于“$a = ($b = 5)”。利用此工具可快速确认特殊运算符如“??”(null合并)、“<=>”(太空船)的优先级,避免在复杂表达式中混淆。常见错误:混用“&&”与“and”时,注意“and”优先级低于“&&”,可能导致赋值提前执行。例如“$result = true && false”返回false,而“$result = true and false”返回true,因为“=”高于“and”。