目录
1.概念
运算符:说白了就是一种符号,这些符号可以将变量或者数据执行某种运算!
运算符对一个或多个操作数(变量或者数值)执行某种运算的符号,也称操作符。
2.算数运算符
(1)“+” 加号
$a=1;
$b=2;
$c=$a+$b;
echo $c;
(2)"-" 减号
第一个意思:减号
$a=10;
$b=2;
$c=$a-$b;
echo $c;
第二个意思:取反
$a=1;
$b=-$a;
echo $ b;//-1
echo '<br / >';//换行
echo $a;//1
注意:取反并不会影响到被取反变量本身的值;
(3)“*” 乘号
$a=4;
$b=2;
$c=$a*$b;
echo $c;
(4)“/” 除号
$a=10;
$b=2;
$c=$a/$b;
echo $c;
注意:(被除数÷除数=商……余数)$b除数不可为0。
(5)“%” 取模(取余)
$a=10;
$b=3;
echo $a%$b;//1
(6)“++” 自增
前++
当在一个语句里面需要使用到自增变量的变量的值的时候,前++会先执行自增,然后再返回自增之后的值!
$a=10;
echo ++$a;//11
后++
当在一个语句里面需要使用到自增变量的变量的值的时候,后++会先返回变量的值,然后再去执行自增!
$a=10;
$b=2;
echo $a++;//echo $a;则输出为10;$a=$a+1;
echo ‘<br />';
echo $a;//11
前,后总结
前++
$a=10;
$b=++$a;//$a=$a+1;
echo $b;//11
后++
$a=10;
$b=$a++;//$b=$a;$a=$a+1;
echo $b;//10
注意:
$a=10;
++$a;//这种情况不需要用到自增变量时,和后++无区别。
echo $a;
(7)“--” 自减
前--
$a=10;
echo --$a;//9
后--
$a=10;
$b=2;
echo $a--;//echo $a;则输出为10;$a=$a-1;
echo ‘<br />';
echo $a;//9
注意:
$a=10;
--$a;//这种情况不需要用到自增变量时,和后--无区别。
echo $a;
注意:自增或自减是对变量而言的。
3.字符串运算符
(1)连接运算符
$a='php';
$b='笔记';
echo $a.$b;//输出php笔记
4.赋值运算符
注意:赋值运算符整个语句是有值的,所以整个语句就是一个表达式,所以我们也可以这么写:$a=$b=2;相当于$a=($b=2);也相当于$a=2;$b=2;
(1)“=”
把右边的值赋值给左边的变量
$a=1;
二元运算符:左边的操作数必须是变量,右边可以是一个表达式,也可以是一个值,一个变量等等。
表达式是PHP最重要的基石。在PHP中,几乎所写的任何东西都是一个表达式,简单但却最精确的定义一个表达式的方法就是“任何有值的东西”。
$a=1;
$b=1+$a;
(2)“+=”
$a=2;
$b=1;
$a+=$b;//$a=$a+$b;
echo $a;
(2)“-=”
$a=2;
$b=1;
$a+=$b;//$a=$a-$b;
echo $a;
(3)"*="
(4)"/="
(5)"%="
(6)".="字符串连接加一个等号
5.比较运算符
对操作数(按照比较运算符的要求,规则)进行比较;
如果比较出的结果满足比较运算符的要求,那么结果就是true(真,成立,满足),否则就是false(假,不成立,不满足)
PHP中规定:
使用echo输出布尔类型值的时候。
echo true;它在页面中会输出1。
echo false;它会在页面什么都不输出。
规定的,记住就好!所以说我们在测试的过程中如果需要输出布尔类型值的时候,我们最好使用var_dump()来输出更明了的结果。
(1)“==”值是否相等
如果值相等则就是true(真,成立,满足);
如果值不相等则就是false(假,不成立,不满足);
$a=1;
$b=1;
var_dump($a==$b);//输出true
(2)“===”全等(值要相等,类型也要相等)
如果两边操作数的值,不全相等则就是false(假,不成立,不满足);否则就是true(真,成立,满足);
$a=11;
$b=‘11’;
var_dump($a==$b);//输出true,不要求类型,PHP将$b的字符串转化为整形
var_dump($a===$b);//输出false
(3)“!=”值是否不相等
如果两边操作数的值,不相等则就是true(真,成立,满足);否则就是false(假,不成立,不满足);
$a=1;
$b=11;
var_dump($a!=$b);//输出true
(4)“<>”同(3)值是否不相等
(5)“!==”不全等
如果两边操作数的值,不全等则就是true(真,成立,满足);否则就是false(假,不成立,不满足);
$a=1;
$b=11;
var_dump($a!=$b);//输出true
var_dump($a!==$b);//输出true
但是
$a=1;
$b=‘1’;
var_dump($a!=$b);//输出false(只看数字,不看类型)
var_dump($a!==$b);//输出true
(6)“<”小于
比较两边操作数的值,前面是否小于后面,小于则就是true(真,成立,满足);否则就是false(假,不成立,不满足);
$a=1;
$b=11;
var_dump($a<$b);//输出true
(7)“>”大于
比较两边操作数的值,前面是否大于后面,大于则就是true(真,成立,满足);否则就是false(假,不成立,不满足);
$a=1;
$b=11;
var_dump($a>$b);//输出false
(8)“<=”小于等于
比较两边操作数的值,前面是否小于等于后面,小于等于则就是true(真,成立,满足);否则就是false(假,不成立,不满足);
$a=1;
$b=11;
var_dump($a<=$b);//输出true
(9)“>=”大于等于
比较两边操作数的值,前面是否大于等于后面,大于等于则就是true(真,成立,满足);否则就是false(假,不成立,不满足);
$a=1;
$b=11;
var_dump($a>=$b);//输出false
6.逻辑运算符 主要看最终结果(对短路而言)
概念:对表达式进行逻辑运算,运算的结果是布尔类型的值(true,false)
要求:参与逻辑运算的表达式的值是布尔类型的值,如果不是布尔类型的值会被自动转化成布尔类型的值,然后在参与运算。
(1)逻辑 与(and或者&&)两真才真
左右两边的表达式的值都是true的时候,运算的结果就是true;
否则只要其中任意一个为false,运算结果就是false。
$a=1;
$b=154;
var_dump($a &&$b); //true
中间隐含一个问题:“短路”,运算符的优先级的问题。
$a=true;
$b=1;
$a && ++$b;
echo $b;//2
若
$a=false;
$b=1;
$a && ++$b;//因为$a=false,&&后面就不看了,所以输出$b的值为1;
echo $b;//短路,上面的++$b被短路了。
我们的程序语言设计者认为:
只要有逻辑运算符(逻辑与,逻辑或)那么运算结果就是一个true或者false。
那么(me)整个运行过程就不重要了!
当然短路问题,并不会遇上太多,就算遇到也不会有什么影响!
(2)逻辑 或(or或者||)一真则真
左右两边的表达式的值有一个为true的时候,运算的结果就是true;
只有当两边的值都为false,运算结果才会是false。
$a=1;
$b=0;
var_dump($a || $b); //true
中间隐含一个问题:“短路”,运算符的优先级的问题。
$a=true;
$b=1;
$a || ++$b;//因为$a=ture,||后面就不看了,所以输出$b的值为1;
echo $b;//短路,上面的++$b被短路了。
(3)逻辑 异或(xor) 相异为真
左右两边的表达式的值不一样的时候,运算的结果就是true;
如果两边的值一样,运算结果就是false。
$a=1;
$b=0;
var_dump($a xor $b); //true
(4)逻辑 非(!) 相反
将原来表达式的值否定,从而与原式相反。
$a=0;
var_dump(!$a); //true
7.位运算符
位运算用于对操作数中的每一位二进制位进行运算,PHP主要用于网站开发方面,所以位运算在PHP中使用较少。
8.其他运算符
(1)“? :”
三元运算符
表达式1? 表达式2: 表达式3;
如果表达式1的值为true,那么就执行表达式2,否则就执行表达式3。
$a=true? 10: 20;
echo $a;//10
(2)“ ` ` ” 类似于电脑搜索cmd
可以把系统的命令放在里面执行!
涉及到跨平台:
$a=`ipconfig`//可在PHP中执行
$b=`ifconfig`//null
var_dump($b);
(3)“@”
屏蔽表达式的错误(标在表达式的前面)
echo @$a;
(4)"=>"
(5)“->”
(6)“instanceof”
9.运算符的优先级
只记常用的即可,实际开发中不会经常用过于复杂的表达式。
概念:谁优先级别高就先算谁。
综合方向:规定了从哪个方向开始算的问题。
优先级归纳:
(1)[无]递增递减
(2)[右]逻辑是非
(3)[左]乘,除,取余
(4)[左]加,减,字符串连接符
(5)[无]包括大于号或者小于号的比较运算符
(6)[无]不包括大于号或者小于号的比较运算符
(7)[左]逻辑与(&&)
(8)[左]逻辑或(||)
(9)[左] ? :
(10)[右]赋值运算符
(11)[左]逻辑异或(xor)
圆括号的作用:
用圆括号可以将表达式里面的某一块看成一个整体!(从而改变了因为优先级而决定的运算顺序)。
使用括号可以增强代码的可读性。哪怕有的地方不需要加括号,也可以加上括号,增加可读性!
$a=1;
$b=2;
$a=($b+=3);
echo $a;//5
echo'<br / >';
echo $b;//5