php运算符

算数运算符

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

递增/递减运算符

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

比较运算符

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

逻辑运算符

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

三元运算符

 语法格式如下,相当于if...else... 
(expr1) ? (expr2) : (expr3) 
注:在 PHP7+ 版本多了一个 NULL 合并运算符 ??, 相当于js中 ||  
<?php
// 如果 $_GET['user']存在则返回本身,不存在返回 'nobody'
$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
 
// 浮点型
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

小例如下:

<?php
$m=8;
$n=12;
$p=-109;
$mn=$m&$n;
echo $mn."<br>";
$mn=$m|$n;
echo $mn."<br>";
$mn=$m^$n;
echo $mn."<br>";
$mn=~$m;
echo $mn."<br>";
$mn=~$p;
echo $mn."<br>";
?>

输出结果:

8
12
4
-9
108

关于按位取反的问题,再琢磨琢磨

运算符优先级

结合方向 运算符 附加信息
clone new clone 和 new
[ array()
++ — ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
instanceof 类型
! 逻辑运算符
* / % 算术运算符
+ – . 算术运算符和字符串运算符
<< >> 位运算符
== != === !== <> 比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
| 逻辑运算符
? : 三元运算符
= += -= *= /= .= %= &= |= ^= <<= >>= => 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符
, 多处用到
注:整理来看优先级,算术 > 位 > 逻辑 > 赋值
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 运算符是用来对变量、常量或数据进行计算的符号,它对一个值或一组值执行一个指定的操作。PHP的运算符包括算术运算符...
    nothing_c阅读 4,185评论 0 1
  • 一、算术运算符 算术运算符用于完成各种运算; + 加法运算符 $a + $b - 减法运...
    XZ阳光小熊阅读 3,030评论 0 0
  • 算术运算符 递增/递减运算符 复合运算符 字符串运算符 需要注意的是:在 echo 输出时,逗号 "," 同样可以...
    THEyAnJ阅读 1,560评论 0 0
  • 算术运算符 字符串运算符 只有一个点‘.’号,它可以将两个字符串连接起来。结合成一个新的字符串。 赋值运算符 .=...
    Yix1a阅读 1,144评论 0 0
  • 我们有着最近似的灵魂, 从来没有想过把我最真实的灵魂摆出来, 但是却无意收获了跟我极其相似的你, 说来相似却也不同...
    烟愫阅读 3,093评论 0 0