PHP: 运算符优先级 |
您所在的位置:网站首页 › 逻辑运算符的优先级从高到低 › PHP: 运算符优先级 |
运算符优先级
运算符优先级指定了两个表达式绑定得有多“紧密”。例如,表达式 1 + 5 * 3 的结果是 16 而不是 18 是因为乘号(“*”)的优先级比加号(“+”)高。必要时可以用括号来强制改变优先级。例如:(1 + 5) * 3 的值为 18。 如果运算符优先级相同,那运算符的结合方向决定了该如何运算。例如,"-"是左联的,那么 1 - 2 - 3 就等同于 (1 - 2) - 3 并且结果是 -4. 另外一方面,"="是右联的,所以 $a = $b = $c 等同于 $a = ($b = $c)。 没有结合的相同优先级的运算符不能连在一起使用,例如 1 < 2 > 1 在PHP是不合法的。但另外一方面表达式 1 运算符优先级和关联方式仅决定表达式如何分组,不指定计算顺序。 一般情况下, PHP 不指定表达式的计算顺序,并且代码避免指定假设执行顺序, 因为行为会在 PHP 版本间发生变化或者依赖于旁边的代码。 示例 #2 未定义执行顺序 示例 #3 +、- 、. 具有相同的优先级 以上示例会输出: -1, or so I hope -1, or so I hope x minus one equals 3, or so I hope注意: 尽管 = 比其它大多数的运算符的优先级低,PHP 仍旧允许类似如下的表达式:if (!$a = foo()),在此例中 foo() 的返回值被赋给了 $a。 更新日志 版本 说明 8.0.0 现在,字符串连接符(.)的优先级比算数加/减(+ 和 -)、按位左/右移()更低。在此之前,它的优先级与 +、 - 相同,并且比 更高。 8.0.0 三元运算符(? :)是现在是非关联的;以前它是左联的。 7.4.0 已弃用在无括号的表达式中依赖字符串连接(.)相对于算数加/减(+ 或者 -)或者按位左/右移()的优先级的使用方法。 7.4.0 不推荐使用三元运算符(? :)的左联。 即已弃用嵌套多个未带括号的三元运算符。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |