php运算符

算数运算符

+ 加
- 减
* 乘
/ 除
% 取余
- 取反
. 并置,连接符

递增/递减运算符

++x 预递增
x++ 后递增
--x 预递减
x-- 后递减
注:不管运算符是前置还是后置,对x的结果都是递增或递减的,前置后置影响的是运算符处理后的结果

比较运算符

== 等于
=== 绝对等于,类型也要一致
!=或者<> 不等于
!=== 不等于或者类型不同
> 大于
< 小于
>= 大于等于
<= 小于等于

逻辑运算符

and或者&& 并且
or或者||  或者,至少一个为真
xor 异或,有且仅有一个为真
! 非

三元运算符

 语法格式如下,相当于if...else... 
(expr1) ? (expr2) : (expr3) 
注:在 PHP7+ 版本多了一个 NULL 合并运算符 ??, 相当于js中 ||  

组合比较符(PHP7+)

 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
 
// 浮点型
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
 
// 字符串
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>

位运算符

# [php--关于位运算符](http://www.cnblogs.com/exceed/p/5034760.html)

常见四个位运算符:&(按位与),|(按位或),^(按位异或),~(按位取反)

&(按位与):对应位同时为1时,在&运算后则为1,否则为0

|(按位或):对应位有一个为1时,在|运算后则为1,同为0时则为0

^(按位异或):对应位不同时为1时,在^运算后为1,同时为0时则为0,同时为1时^运算后也是0

~(按位取反):$a+(~$a)=-1

在计算机中,负数以其正值的补码形式表达。
 在这里我们就要知道三个概念了,原码,反码和补码。

原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。

8的原码为:0000 0000 0000 0000 0000 0000 0000 1000

反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。取反操作指:1变0, 0变1。

8按位取反:1111 1111 1111 1111 1111 1111 1111 0111

补码:反码加1称为补码。也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。

正数的补码与其原码相同;负数的补码是在其反码的末位加1

反码加1:1000 0000 0000 0000 0000 0000 000 1001;这样就得负数的正值的补码形式。也就是-9了。

参考:http://www.cnblogs.com/setsail/archive/2013/05/22/3093542.html

   http://my.oschina.net/WarRome/blog/90707

以上解释自己也没有看的太懂,但实践得出$a+(~$a)=-1

小例如下:

";
$mn=$m|$n;
echo $mn."
"; $mn=$m^$n; echo $mn."
"; $mn=~$m; echo $mn."
"; $mn=~$p; echo $mn."
"; ?> 输出结果: 8 12 4 -9 108 关于按位取反的问题,再琢磨琢磨

运算符优先级

结合方向 运算符 附加信息
clone new clone 和 new
[ array()
++ — ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
instanceof 类型
! 逻辑运算符
* / % 算术运算符
+ – . 算术运算符和字符串运算符
<< >> 位运算符
== != === !== <> 比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
| 逻辑运算符
? : 三元运算符
= += -= *= /= .= %= &= |= ^= <<= >>= => 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符
, 多处用到
注:整理来看优先级,算术 > 位 > 逻辑 > 赋值

你可能感兴趣的:(php运算符)