PHP运算符的优先级
运算符是可以通过给出的一或多个值来产生另一个值(因而整个结构成为一个表达式)的符号。
运算符可按照其能接受几个值来分组。一元运算符只能接受一个值,例如 !(逻辑取反运算符)或 ++(递增运算符)。
二元运算符可接受两个值,例如熟悉的算术运算符 +(加)和 -(减),大多数 PHP 运算符都是这种。
最后是唯一的三元运算符 ? :,可接受三个值;通常就简单称之为“三元运算符”(条件运算符)。
运算符优先级指定了表达式运算的结合顺序。例如,表达式 1 + 5 * 3 的结果是 16 而不是 18 是因为乘号(“*”)的优先级比加号(“+”)高,先计算5*3再加1。
必要时可以用括号来强制改变优先级。例如:(1 + 5) * 3 的值为 18。
如果运算符优先级相同,那运算符的结合方向决定了该如何运算。例如,"-"是左联的,那么 1 - 2 - 3 就等同于 (1 - 2) - 3 并且结果是 -4.
另外一方面,"="是右联的,所以 $a = $b = $c 等同于 $a = ($b = $c)。
没有结合的相同优先级的运算符不能连在一起使用,例如 1 < 2 > 1 在PHP是不合法的。
但另外一方面表达式 1 <= 1 == 1 是合法的, 因为 == 的优先级低于 <=。
括号的使用,通过括号的配对来明确标明运算顺序,而非靠运算符优先级和结合性来决定,通常能够增加代码的可读性。
下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?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 $a = 1; echo $a + $a ++; // 输出 2 或 3 $i = 1; $array [ $i ] = $i ++; // 数组键名为 1 或 2 ?> |
以上就是PHP运算符的优先级的全部内容,欢迎大家学习。
相关推荐
深度学习 -- 损失函数
深度残差网络(Deep Residual Networks (ResNets))
深度学习 -- 激活函数
神经网络训练 -- 调整学习速率
生成对抗网络(GAN)改进与发展
生成对抗网络(GAN)优点与缺点
生成对抗网络(GAN)的训练
生成对抗网络(GAN)基本原理
生成模型与判别模型