运算符是可以通过给出的1或多个值(用编程行话来说,表达式)来产生另1个值(因而整个结构成为一个表达式)的东西。
运算符 | 名称 | 描述 | 例子 | 结果 |
---|---|---|---|---|
+ | 加号 | 两值的和 | 4+2 | 6 |
- | 减号 | 两值的差 | 4-2 | 2 |
* | 乘号 | 两值的积 | 4*2 | 8 |
/ | 除号 | 两值的商 | 4/2 | 2 |
% | 取模 | 除法的余数 | 4%2 | 0 |
- | 取反 | 正数的取反是负数 | -4 | -4 |
. | 并置 | 两字符的连接 | "HI".“K” | HIK |
<?php $a=4; $b=2; print $a+$b.'<br>'; //结果为:6<br>是HTML标识,代表换行 print $a-$b.'<br>'; //结果为:2 print $a*$b.'<br>'; //结果为:8 print $a/$b.'<br>'; //结果为:2 print $a%$b.'<br>'; //结果为:0 print -$a.'<br>'; //结果为:-4 print $a.$b.'<br>'; //结果为:42 ?>
赋值运算符"=",把右边表达式的值赋给左边的运算数。
运算符 | 等同于 | 描述 |
---|---|---|
= | $a=$b | 把变量的值赋值给变量a |
+= | $a+=$b($a=$a+$b) | 先把变量a和变量b相加再赋值 |
-= | $a-=$b($a=$a-$b) | 先减再赋值 |
*= | $a*=$b($a=$a*$b) | 先乘再赋值 |
/= | $a/=$b($a=$a/$b) | 先除再赋值 |
.= | $a.=$b($a=$a.$b) | 先连接再赋值 |
%= | $a%=$b($a=$a%$b) | 先取模再赋值 |
<?php $a=10; echo $a; // 输出 10 $b=2; $b += 1; echo $b; // 输出 3 $c=2; $c -= 1; echo $c; // 输出 1 $d=2; $d *= 2; echo $d; // 输出 4 $e=4; $e /= 2; echo $e; // 输出 2 $f=5; $f %= 2; echo $f; // 输出 1 ?>
用于比较两个值(数字或字符串)
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
== | 等于 | 5==6 | false |
=== | 全等 | 4===“4” | false(左边是数字,右边字符,类型不等) |
!= | 不等于 | 6!=8 | true |
<> | 不等于 | 7<>8 | true |
!== | 不全等 | 4!=="4" | true |
> | 大于 | 6>7 | false |
< | 小于 | 7<8 | true |
>= | 大于等于 | 6>=8 | false |
<= | 小于等于 | 8<=8 | true |
<=> | 太空船运算符(组合比较符) | 1<=>2,1<=>1,2<=>1 | -1,0,1返回三个值的其中一个,小于(-1),等于(0),大于(1)PHP7开始提供 |
?? | NULL合拼操作符 | 4??'a' | 4,左边操作符存在且不为NULL的时候返回左边,否则返回右边 |
<?php $a=8; $b=10; $c="10"; var_dump($a==$b); // 输出bool(false) var_dump($b===$c); // 输出bool(false) var_dump($a!=$b); // 输出bool(true) var_dump($a<>$b); // 输出bool(true) var_dump($b!==$c); // 输出bool(true) var_dump($a>$b); // 输出bool(false) var_dump($a<$b); // 输出bool(true) var_dump($a>=$b); // 输出bool(false) var_dump($a>=$b); // 输出bool(false) ?>
判断左右两边值的true和false
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
and | 与 | $a and $b | 如果$a和$b都为true,则为true,否则为false |
or | 或 | $a or $b | 如果 $a 和 $b 至少有一个为 true,则返回 true,否则为false |
xor | 异或 | $a xor $b | 如果 $a 和 $b 只能其中一个为 true,则返回 true,否则为false |
! | 非 | !$a | 如果 $a 不为 TRUE |
&& | 与 | $a && $b | 如果$a和$b都为true,则为true,否则为false |
|| | 或 | $a || $b | 如果 $a 和 $b 至少有一个为 true,则返回 true,否则为false |
<?php $a=8; $b=10; var_dump ($a < 10 and $b > 1) ;//返回true var_dump ($a == 8 or $b == 1) ;//返回true var_dump ($a ==8 xor $b ==10) ;//返回false var_dump (!$a == 8) ; //返回false var_dump ($a < 10 && $b > 1) ;//返回true var_dump ($a < 8 || $b > 1) ;//返回true ?>
运算符 | 名称 | 结果 |
---|---|---|
++$a | 前递增 | $a加1,返回给$a(等于$a=$a+1) |
$a++ | 后递增 | 返回$a,后$a加1(等于($a=$a)+1) |
--$a | 前递减 | $a减1,返回给$a(等于$a=$a-1) |
$a-- | 后递减 | 返回$a,后$a减1(等于($a=$a)-1) |
<?php $a=8; $b=6; $c=4;$d=2; var_dump (++$a) ;//$a为9 $a=$a+1; var_dump ($b++) ;//$b为6 ($b=$b)+1; var_dump (--$c) ;//$c为3 $b=$b-1; var_dump ($d--) ;//$d为2 ($b=$b)-1; ?>
运算符 | 名称 | 描述 |
---|---|---|
$e+$d | 集合($e和$d为数组变量) | $e和$d数组的集合 |
$e==$d | 相等 | $e 和 $d 拥有相同的键/值对,则返回 true。 |
$e===$d | 全等 | $e和 $d拥有相同的键/值对,且顺序相同类型相同,则返回 true。 |
$e!=$d | 不等 | $e不等于 $d,则返回 true |
$e<>$d | 不等 | $e不等于 $d,则返回 true |
$e!==$d | 不全等 | $e与 $d 完全不同,则返回 true |
<?php $e = array("aa" => "hong", "bb" => "lv"); $d = array("bb" => "lv", "dd" => "huan"); $t = $e + $d; // $a 和 $b 数组合并 var_dump($t); //array(3) {["aa"]=>string(4) "hong"["bb"]=>string(2) "lv"["dd"]=>string(4) "huan"} var_dump($e == $d);//false var_dump($e === $d);//false var_dump($e != $d);//true var_dump($e <> $d);//true var_dump($e !== $d);//true ?>
"?:"(三元运算符)
(expr1) ? (expr2) : (expr3) |
对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
<?php $a = true; $b=false; $fruit=$a ? "t" : "f"; $fruit2=$b ? "t" : "f"; echo $fruit;//输出t echo $fruit2;//输出f ?>
本表格是按照从上到下,结合方向(左:从左到右 右:从右到左 无:不分)的顺序排列。
结合方向 | 运算符 | 描述 |
---|---|---|
无 | clone new | clone 和 new |
左 | [ | array()数组 |
右 | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | 类型和递增/递减 |
无 | instanceof | 类型 |
右 | ! | 逻辑运算符 |
左 | * / % | 算术运算符 |
左 | + – . | 算术运算符和字符串运算符 |
左 | << >> | 位运算符 |
无 | == != === !== <> | 比较运算符 |
左 | & | 位运算符和引用 |
左 | ^ | 位运算符 |
左 | | | 位运算符 |
左 | && | 逻辑运算符 |
左 | || | 逻辑运算符 |
左 | ? : | 三元运算符 |
右 | = += -= *= /= .= %= &= |= ^= <<= >>= => | 赋值运算符 |
左 | and | 逻辑运算符 |
左 | xor | 逻辑运算符 |
左 | or | 逻辑运算符 |