PHP 支持>,>=,<,<=,==,!=;同时支持全等运算符 === (表示值和类型都相同) 非全等运算符 !==(值或者类型不同)
取模运算符%的结果和被除数的符号保持一致。即$a%$b 的值的符号与$a保持一致
- 算术运算符
例子 | 名称 | 结果 |
---|---|---|
-$a | 取反 | $a 的负值。 |
$a + $b | 加法 | $a 和 $b 的和。 |
$a - $b | 减法 | $a 和 $b 的差。 |
$a * $b | 乘法 | $a 和 $b 的积。 |
$a / $b | 除法 | $a 除以 $b 的商。 |
$a % $b | 取模 | $a 除以 $b 的余数。 |
$a ** $b | 次方 | $a 的 $b次方。Introduced in PHP 5.6. |
- 位运算符
例子 | 名称 | 结果 |
---|---|---|
$a & $b | And(按位与) | 将把 $a 和 $b 中都为 1 的位设为 1。 |
$a | $b | Or(按位或) | 将把 $a 和 $b 中任何一个为 1 的位设为 1。 |
$a ^ $b | Xor(按位异或) | 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。 |
~ $a | Not(按位取反) | 将 $a 中为 0 的位设为 1,反之亦然。 |
$a << $b | Shift left(左移) | 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。 |
$a >> $b | Shift right(右移) | 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。 |
- 比较运算符
例子 | 名称 | 结果 |
---|---|---|
$a == $b | 等于 | TRUE ,如果类型转换后 $a 等于 $b。 |
$a === $b | 全等 | TRUE ,如果 $a 等于 $b,并且它们的类型也相同。 |
$a != $b | 不等 | TRUE ,如果类型转换后 $a 不等于 $b。 |
$a <> $b | 不等 | TRUE ,如果类型转换后 $a 不等于 $b。 |
$a !== $b | 不全等 | TRUE ,如果 $a 不等于 $b,或者它们的类型不同。 |
$a < $b | 小与 | TRUE ,如果 $a 严格小于 $b。 |
$a > $b | 大于 | TRUE ,如果 $a 严格大于 $b。 |
$a <= $b | 小于等于 | TRUE ,如果 $a 小于或者等于 $b。 |
$a >= $b | 大于等于 | TRUE ,如果 $a 大于或者等于 $b。 |
$a <=> $b | 太空船运算符(组合比较符) | 当$a小于、等于、大于$b时 分别返回一个小于、等于、大于0的integer 值。 PHP7开始提供. |
$a ?? $b ?? $c | NULL 合并操作符 | 从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL ,则返回 NULL 。PHP7开始提供。 |
- 错误控制运算符
@当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
- 执行运算符
使用反引号运算符“`”的效果与函数 shell_exec() 相同,PHP会尝试将反引号中的内容作为shell命令进行执行。但其不能在双引号字符串中使用。
- 逻辑运算符
例子 | 名称 | 结果 |
---|---|---|
$a and $b | And(逻辑与) | TRUE ,如果 $a 和 $b 都为 TRUE 。 |
$a or $b | Or(逻辑或) | TRUE ,如果 $a 或 $b 任一为 TRUE 。 |
$a xor $b | Xor(逻辑异或) | TRUE ,如果 $a 或 $b 任一为 TRUE ,但不同时是。 |
! $a | Not(逻辑非) | TRUE ,如果 $a 不为 TRUE 。 |
$a && $b | And(逻辑与) | TRUE ,如果 $a 和 $b 都为 TRUE 。 |
$a || $b | Or(逻辑或) | TRUE ,如果 $a 或 $b 任一为 TRUE 。 |
- 字符串运算符 “.”用于拼接字符串
- 数组运算符
+ 表示将两个数组进行联合,如果两个数组存在键值相同的元素,则保留+号左侧的键值对应的value值
<?php
$a = array("a"=>"apple","b"=>"banana");
$b = array("a"=>"strw","b"=>"appleb","c"=>"cherry");
echo var_dump($a+$b);
//输出
/*
array(3) {
["a"]=>
string(5) "apple"
["b"]=>
string(6) "banana"
["c"]=>
string(6) "cherry"
}
*/
?>
$a == $b | 相等 | 如果 $a 和 $b 具有相同的键/值对则为 TRUE 。 |
$a === $b | 全等 | 如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE 。 |
$a != $b | 不等 | 如果 $a 不等于 $b 则为 TRUE 。 |
$a <> $b | 不等 | 如果 $a 不等于 $b 则为 TRUE 。 |
$a !== $b | 不全等 | 如果 $a 不全等于 $b 则为 TRUE 。 |
- 类型运算符:
instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例,确定一个变量是否属于某一个接口的实现。也可以对变量或字符串使用该运算符
<?php
class a{}
class b extends a{}
$a = new b;
var_dump($a instanceof a); //输出bool(true)
var_dump($a instanceof b); //输出bool(true)
$c = 'b'
var_dump($a instanceof $c); //输出bool(true)
?>