一、什么是运算符
什么是运算符?运算符是告诉PHP做相关运算的标识符号。例如,你需要计算123乘以456等于多少,这时候就需要一个符号,告诉服务器,你需要做乘法运算。
PHP中的运算符有哪些?PHP运算符一般分为算术运算符、赋值运算符、比较运算符、三元运算符、逻辑运算符、字符串连接运算符、错误控制运算符。
任务
我们小时候学数学,首先学阿拉伯数字“1,2,3…”,然后就开始学习“1加1等于2”,那么在PHP中,加法算术运算符用啥表示呢?用“+”来表示。在右边的编辑器中,输入一条指令“$c = $a + $b;”。
二、PHP中的算术运算符
算术运算符主要是用于进行算术运算的,例如:加法运算、减法运算、乘法运算、除法运算。在PHP中的常用的算术运算符对应下表:
任务
考考服务器^_^,算个平均分呗!
在右边编辑器中,输入四条指令,如图:
1、在第7行输入第一条指令,用于计算总分;
$sum = $english+$math+$biological+$physical;
2、在第8行输入第二条指令,用于计算平均分;
$avg = $sum / 4;
3、在第9行输入第三条指令,计算数学比英语高几分;
$x = $math - $english;
4、在第10行输入第四条指令,学习下平方的计算方法。
$x2 = $english * $english;
计算结果如图所示:
三、PHP中的赋值运算符
PHP的赋值运算符有两种,分别是:
(1)“=”:把右边表达式的值赋给左边的运算数。它将右边表达式值复制一份,交给左边的运算数。换而言之,首先给左边的运算数申请了一块内存,然后把复制的值放到这个内存中。
(2)“&”:引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。
任务
咱们对比一下两个赋值运算符的区别吧?
在右边编辑器中输入条指令,
1、在第3行中输入第一条指令:
$b = $a;
2、在第4行中输入第二条指令:
$c = &$a;
如图所示:
从运行结果中:
四、PHP中的比较运算符
比较运算符主要是用于进行比较运算的,例如:等于、全等、不等、大于、小于。在PHP中常用的比较运算符如下表:
任务
咱来试试比较运算符吧!
在右边编辑器中,输入11条指令,如图所示:
分别是第4行,第6行,第8行,第10行,第12行,第14行,第18行,第20行,第22行,第24行,第26行。运行结果如下:
从运行结果中,我们可以发现全等和等于的区别,不等与非全等的区别。
五、PHP中的三元运算符
(“?:”)三元运算符也是一个比较运算符,对于表达式(expr1)?(expr2):(expr3),如果expr1的值为true,则此表达式的值为expr2,否则为expr3。
任务
看看三元运算符咋用吧!
在右边编辑器中第3行输入一条指令:
$b = $a >= 60 ? "及格": "不及格";
如下图所示:
![](http://img.mukewang.com/53ffdb3e00015c9404960174.jpg)
其expr1的作用是判断$a值是否大于60,若大于60,则$b变量的值为expr2的值“及格”,若小于60,则$b变量的值为expr3的值“不及格”。运行结果如图所示:
![](http://img.mukewang.com/5333c5ca0001f17700750052.jpg)
六、PHP中的逻辑运算符
逻辑运算符主用是进行逻辑运算的,例如:逻辑与、逻辑或、逻辑异或、逻辑非等,在PHP中常用的逻辑运算符如下表:(点击看大图)
![](http://img.mukewang.com/533e0fbe0001c56f06080279.jpg)
我们可以从投票的角度来理解逻辑运算:
1、逻辑与:
要求所有人都投票同意,才会通过某协议;
2、逻辑或:
只要求一个人投票同意就行;
3、逻辑异或:
只能有且只能有一个人投票同意;
4、逻辑非:
某个人要反对,但是通过逻辑非,使其反对无效;
“与”和“或”有两种不同形式运算符的原因是它们运算的优先级(就是运算的有限顺序,比如我们小学的时候学习四则运算,加减乘除混合在一起啦,优先计算乘除,再计算加减)不同。
任务
我来试一试:大家来投票吧!
我们假设有A、B、C、D进行了投票,然后我们用逻辑运算符,来判定他们的投票是否能通过某些协议。在右边编辑器中输入六条指令,分别是第7行,第9行,第11行,第13行,第15行,第17行,如下图所示:(点击看大图)
![](http://img.mukewang.com/5333c69b0001a45805550301.jpg)
其中第7行,第9行,第11行需要括号括起来,因为这三个逻辑运算符的优先级没有三元运算符高。运行结果如下:
![](http://img.mukewang.com/5333c6b5000149f001050118.jpg)
七、PHP中的字符串连接运算符
字符串连接运算符是为了将两个字符串进行连接,PHP中提供的字符串连接运算符有:
(1)连接运算符(“.”):它返回将右参数附加到左参数后面所得的字符串。
(2)连接赋值运算符(“.=”):它将右边参数附加到左边的参数后。
任务
两种连接运算符区别在哪呢?
在右边编辑器中输入三条指令,
1、在第3行输入第一条指令“$tip = $a.",欢迎您在慕课网学习PHP!";”
2、在第6行输入第二条指令“$b .= ",道是无晴却有晴";”
3、在第9行输入第三条指令“$c = $c.",道是无晴却有晴";”
如下图所示:
![](http://img.mukewang.com/5333c7e90001194104580266.jpg)
从运行结果中:
![](http://img.mukewang.com/5333c8050001d1a402530070.jpg)
我们可以看出连接赋值运算符在连接字符串的基础上,还有赋值功能。此外,第6行的指令与第9行的指令效果相同,但前者代码更简洁。
八、PHP中的错误控制运算符
PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;
如果激活了track_error(这个玩意在php.ini中设置)特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。
需要注意的是:错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。
任务
看看错误控制运算符的效果吧!
在右边编辑器的第2行输入一条指令“$conn = @mysql_connect("localhost","username","password");”,如图所示:
![](http://img.mukewang.com/533a13d30001ab0305580065.jpg)
在右边编辑器的第2行输入一条指令“$conn = @mysql_connect("localhost","username","password");”,如图所示:
![](http://img.mukewang.com/5333c8cf000119d208040026.jpg)
取模算术符有啥用呢?
假设我们要在一个考场安排了一场考试,对考生从1开始,都进行了编号,那么怎么让服务器帮助我们计算考生在的位置呢,进而打印考场的考生对照表呢?在右边编辑器里输入两条指令,如图所示:
![](http://img.mukewang.com/548e461a0001072607730129.jpg)
任务
我来试一试:
1、在第5行输入第一条指令,用于计算在第几排。
$line = ceil($no/$maxLine);
2、在第6行输入第二条指令,使用取模算术符计算所在位置。
$row = $no%$maxLine?$no%$maxLine:$maxLine;
运行结果如下:
![](http://img.mukewang.com/54881253000129ca03580048.jpg)