运算符是可以通过给出的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 | 逻辑运算符 |