1.赋值运算符(可连贯赋值)
$a=$b=0;
复合赋值:五个算数运算符+-*/%可以和赋值运算符=结合起来形成复合运算符(与c相似)
$a+=($b+100)/2;
$a=$a+($b+100)/2;
2.比较运算符:(返回结果都是布尔类型,满足返回true,不满足返回false)
<>: 不相等 与!=类似
!==:不全等于(只有大小或者类型不同,满足一个即可)
===:全等于,左边与右边相同(大小及数据的类型都要相同)
==:等于,只需大小相同
以下是等于与全等于的不同
<?php
$a='123';
$b=123;
var_dump($a==$b);
var_dump($a===$b);
?>
3.逻辑运算符:(前三个与c相似)
&&:逻辑与:左边条件与右边条件同时成立
||:逻辑或:左边的条件或者右边的条件只要有一个满足即可
!:逻辑非:对已有条件进行取反,本身为true,结果为false
and:与:与&&相似
or:或:与||相似
xor:异或:如果x和y有且仅有一个位true,则返回true
4.连接运算符:
.:讲两个字符串连接到一起
.=:复合运算,将左边的内容与右边的内容连接起来再重新赋值给左边变量
A.= ======A=A.b
<?php
$a='hello';
$b=123;
echo $a.$b;//.
echo '<hr/>';
$a.=$b;//.=
echo $a;
?>
5. 三目运算符:有三个表达式参与的运算(简单的分支结构缩写)
语法格式:表达式1?表达式2:表达式3;
运算:如果表达式1成立那么执行表达式2,否则执行表达式3;
注意:如果表达式本身比较复杂,建议使用括号包起来
<?php
$a=10;
$b=$a>10?100:0;
echo $b;
?>
6.自操作运算符
关于前缀后缀:a++与++a的区别:a++的值是a+1以前的值,而++a的值是加了1以后的值,无论哪个,a自己的值都加了1
如当a=10,a++=10,a=11
++a=11,a=11
<?php
$a=$b=1;
$a++;
++$b;
echo $a,$b;
echo '<br/>';
echo $a++,++$b;
echo '<br/>';
echo $a,$b;
?>
运算符优先级 | ||
---|---|---|
ps:从上到下递减 | ||
结合方向 | 运算符 | 附加信息 |
非结合 | ++-- | 递增/递减运算符 |
非结合 | ~-(int)(float)(string)(array)(object)(bool)@ | 类型 |
右结合 | ! | 逻辑操作符 |
左 | */% | 算术运算符 |
左 | +-. | 算术和字符串运算符 |
左 | <<>> | 位运算符 |
非结合 | <<=>>=<> | 比较运算符 |
非结合 | != = !== | 比较运算符 |
左 | & | 位运算符和引用 |
左 | ^ | 位运算符 |
左 | | | 位运算符 |
左 | && | 逻辑运算符 |
左 | || | 逻辑运算符 |
左 | ?: | 三元运算符 |
右 | =+= -= *= /= .= %= &= |= ^= <<=>>= | 赋值运算符 |
左 | and | 逻辑运算符 |
左 | xor | 逻辑运算符 |
左 | or | 逻辑运算符 |
左 | , | 多处用到 |