前言:php的运算符与C语言比较,相似的地方有很多,相差的地方也很大啊!
目录:
0×01:算数运算符
① +
就是1+1=2;
$a=1;
$b=2;
$c=$a+$b;
echo $c;
② ➖
1.单纯的减号
$a=10;
$b=2;
$c=$a-$b;
echo $c;
2.取反
$a=1;
$b=-$a;
echo $b; //-1
echo
;
echo $a; //1
③ * 乘号
$a=3;
$b=4;
$c=$a*$b;
echo $c;
就是简单的乘号。
④ / 除号
$a=10;
$b=2;
$c=$a/$b;
echo $c;
⑤ – ,++运算
++$a;
--$a ;
就是先自增或者自减,让后$a参与运算。
$a--;
$a++;
就是先让$a参与运算,让后进行自增或者自减。
注意:
$a=10;
++$a;
echo $a;
这种情况 ++$a
与$a++
都没有参与数值运算,情况相同,数值相同。
0×02:字符串运算符
PHP中的字符串运算符只有一个.
,也成为连接运算符。
0×03:赋值运算符
=,+=,*=,-=,/=,%=,.= 等等
二元运算符:
左边的操作数必须是变量,右边的可以是一个表达式,一个值,一个变量等等。
①=:
即赋值(不同于数学里的等于),即将等号右边的值赋给左边的变量。
②
+=:$a+=$b; //$a=$a+$b;
-=:$a-=$b; //$a=$a-$b;
*=:$a*=$b; //$a=$A*$b;
/=:$a/=$b; //$a=$S/$b;
%=:$a%=$b; //$a=$a%$b; 取余
.=:$a=$b; //$a=$a.$b
0×04:比较运算符
==,===,!=, <> , !== , < , > , <= , >=等等
概念:对操作数进行比较,满足条件即为true,否则为false。
PHP规定:
使用echo输出布尔类型值的时候;
echo true ; 显示结果为1
echo false; 显示为空白
如果我们要输出布尔类型值的时候,我们最好使用var_dump()输出的结果更明了!
①== (值相等)
$a==$b;
var_dump($a==$b)
值相等为true,不相等为false。
②=== (值相等,类型也要相等)
$a=11;
$b='11';
var_dump($a==$b); //true
echo
;
var_dump($a===$b); //false
③!= ,<>(值不相等)
$a=1;
$b=2;
var_dump($a!=$b); //true
④ !== (不全等)
值或类型有一个相等的就可以。
⑤< , > , < = , >= ;
这个就是和数学里的一样,没必要细说。
0×05:逻辑运算符
概念;对表达式进行逻辑运算,运算出来的结果是布尔类型的值(trure,false),要求参与运算的值是布尔类型的,否则会被强制转换让后参与运算。
以下值被认为false,其他的值都是被认为true。
布尔值false
0
浮点型0.0
空白字符串和字符串0
没有成员的数组
NULL
①and && (逻辑与)
只有两边同时为true时,最后的结果才为true。
②or || (逻辑或)
两边有一个为true时,最后的输出结果为true。也即是两边同时为false时,才能为false。
③xor (逻辑异或)
左右两边的值不一样是结果为true,一样时为false。
④ ! 逻辑非
将原表达式的值否定掉,true变成false,false变成true。
0×06:位运算符
位运算符用于对操作数中的每一个二进制位进行运算。
0×07;其他运算符
①? :
三元运算符
表达式1 ? 表达式2 :表达式3;
如果表达式1的值为true,则执行表达式2,否则执行表达式3。
②’ ’
可以把系统的命令放在里面执行!(Windows系统)
③@
屏蔽表达式可能发生的错误!注意:是表达式
echo @$b;
④=> , -> ,instanceof(先省略)
0×08:运算符的优先级
①【无】递增递减
②【右->左】逻辑非
③【左->右】乘,除,取余
④【左】加,减,字符串连接
⑤【无】包含大于号,小于号的运算符
⑥【无】不包含大于号或者小于号的运算符
⑦【左】逻辑与 &&
⑧【左】逻辑或 ||
⑨【左】? :
⑩【右】赋值运算符
⒒【左】逻辑异或 xor
圆括号里的可以看成一个整体,并且圆括号可以增加程序的可读性。
短路问题:
$a=false;
$b=1;
$a && ++$b;
echo $b; //上面的$b直接被短路掉!并且数值不变!
语言设计者认为:只要有逻辑运算符(逻辑与,逻辑或),那么运算结果就是一个true或者false。整个程序的运行过程就不重要了。