接下来继续学习PHP基础知识
算数运算+、-、*、/、%
++和--入门
$a=50;
$b=$a++;//等价于$b=$a;$a=$a+1;
$c=++$a;//等价于$a=$a+1;$c=$a;
前:
$a++;--->$a=$a+1
$a--;===>$a=$a-1
后:
++$a;--->$a=$a+1
--$a;--->$a=$a-1
区别:在赋值语句中,$b=$a++;---->$b=$a;$a=$a+1;
$b=++$a;---->$a=$a+1;$b=$a;
--也一样,即赋值语句中,++在前则先执行++后赋值,++在后则先赋值后执行++
左+左-左*左/左%:
$a=10;$a+=90;--->$a=$a+90;//+、-、*、/、%的形式一样
比较运算符:
$a==$b; true--->$a等于$b
$a===$b; true--->$a等于$b,且两个的数据类型要一致,即若$a=2;$b=2.0,结果即为false
$a<>$b; true--->$a不等于$b
$a!=$b; true--->$a不等于$b
$a!==$b; true--->$a不全等于$b,即$a的数值或者数据类型与$b不相等则为真
$a>$b; true--->$a大于$b
$a<$b; true--->$a小于$b
$a>=$b; true--->$a大于或等于$b
$a<=$b; true--->$a小于或等于$b
运算符:
$a and $b; and(逻辑与),true--->$a与$b都为真
$a or $b; or(逻辑或),true--->$a或$b为真
$a xor $b; xor(逻辑异或),true--->$a或$b为真,但不同时为真,即只有一个为真!
!$a; not(逻辑非),true--->$a不为真
$a&&$b; and(逻辑与),true--->$a与$b都为真
$a||$b; or(逻辑或),true--->$a或$b为真
ps:&&和||的优先级比and和or高
and和or的优先级比=低::::"and"<"="<"&&";"or"<"="<"||"
案例:$a=true && false; --->输出结果为false
$b=true and false;--->输出结果为true
原因就是算数运算符的优先级问题!
结合方向 | 运算符 | 附加信息 |
---|---|---|
无 | clone new | clone 和 new |
左 | [ | array() |
右 | ** | 算术运算符 |
右 | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | 类型和递增/递减 |
无 | instanceof | 类型 |
右 | ! | 逻辑运算符 |
左 | * / % | 算术运算符 |
左 | + - . | 算术运算符和字符串运算符 |
左 | << >> | 位运算符 |
无 | < <= > >= | 比较运算符 |
无 | == != === !== <> <=> | 比较运算符 |
左 | & | 位运算符和引用 |
左 | ^ | 位运算符 |
左 | | | 位运算符 |
左 | && | 逻辑运算符 |
左 | || | 逻辑运算符 |
左 | ?? | 比较运算符 |
左 | ? : | ternary |
right | = += -= *= **= /= .= %= &= |= ^= <<= >>= | 赋值运算符 |
左 | and | 逻辑运算符 |
左 | xor | 逻辑运算符 |
左 | or | 逻辑运算符 |