记录一下php运算符与c++不同的地方
算术运算符:
.
并置,用于连接两个字符串
php7+版本新增的整除运算符intdiv()
,
<?php var_dump(intdiv(10, 3)); ?>
结果为
int(3)
赋值运算符:
a .=b
等同于a = a.b
是连接两个字符串
比较运算符:
运算符 | 描述 |
---|---|
x === y | 绝对等于,即x等于y,且两者类型相同 |
x <> y | 不等于 |
x !== y | 不绝对等于,即x不等于y,或它们类型不同,则返回true |
逻辑运算符:
除 &&与、|| 或 、! 非 外,php还有另一种:
运算符 | 描述 |
---|---|
x and y | 与 x和y都为true,则返回true |
x or y | 或 x和y至少有一个为ture,则返回true |
x xor y | 异或 x和y有且只有一个为true,则返回true |
【注】:&&、||、! 的优先级高于 and/or/xor
数组运算符:
c++里对数组的操作基本都是借助函数或者容器实现的,但仍然非常的麻烦,php就相对简单多了
运算符 | 名称 | 描述 |
---|---|---|
x + y | 集合 | x 和 y 的集合 |
x == y | 相等 | 如果 x 和 y 具有相同的键/值对,则返回 true |
x === y | 恒等 | 如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true |
x != y | 不相等 | 如果 x 不等于 y,则返回 true |
x <> y | 不相等 | 如果 x 不等于 y,则返回 true |
x !== y | 不恒等 | 如果 x 不等于 y,则返回 true |
三元运算符:
语法格式:(expr1)?(expr2):(expr3)
自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。
PHP7+版本多了一个NULL合并运算符
<?php
// 如果 $_GET['user'] 不存在返回 'nobody',否则返回 $_GET['user'] 的值
$username = $_GET['user'] ?? 'nobody';
// 类似的三元运算符 $username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
?>
组合比较符(php7+)
此处仅以整数为例,组合运算符以左值减右值
<?php
echo 1 <=> 1; //0
echo 1 <=> 2; // -1
echo 2 <=> 1; //1
?>