一、什么是运算符
  什么是运算符?运算符是告诉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 ? "及格": "不及格"; 
  如下图所示:
 
 其expr1的作用是判断$a值是否大于60,若大于60,则$b变量的值为expr2的值“及格”,若小于60,则$b变量的值为expr3的值“不及格”。运行结果如图所示:
 
 六、PHP中的逻辑运算符
  逻辑运算符主用是进行逻辑运算的,例如:逻辑与、逻辑或、逻辑异或、逻辑非等,在PHP中常用的逻辑运算符如下表:(点击看大图)
 
 我们可以从投票的角度来理解逻辑运算:
  1、逻辑与:要求所有人都投票同意,才会通过某协议;
  2、逻辑或:只要求一个人投票同意就行;
  3、逻辑异或:只能有且只能有一个人投票同意;
  4、逻辑非:某个人要反对,但是通过逻辑非,使其反对无效;
  “与”和“或”有两种不同形式运算符的原因是它们运算的优先级(就是运算的有限顺序,比如我们小学的时候学习四则运算,加减乘除混合在一起啦,优先计算乘除,再计算加减)不同。
  任务
  我来试一试:大家来投票吧!
  我们假设有A、B、C、D进行了投票,然后我们用逻辑运算符,来判定他们的投票是否能通过某些协议。在右边编辑器中输入六条指令,分别是第7行,第9行,第11行,第13行,第15行,第17行,如下图所示:(点击看大图)
 
 其中第7行,第9行,第11行需要括号括起来,因为这三个逻辑运算符的优先级没有三元运算符高。运行结果如下:
 
 七、PHP中的字符串连接运算符
  字符串连接运算符是为了将两个字符串进行连接,PHP中提供的字符串连接运算符有:
  (1)连接运算符(“.”):它返回将右参数附加到左参数后面所得的字符串。
  (2)连接赋值运算符(“.=”):它将右边参数附加到左边的参数后。
  任务
  两种连接运算符区别在哪呢?
  在右边编辑器中输入三条指令,
  1、在第3行输入第一条指令“$tip = $a.",欢迎您在慕课网学习PHP!";”
  2、在第6行输入第二条指令“$b .= ",道是无晴却有晴";”
  3、在第9行输入第三条指令“$c = $c.",道是无晴却有晴";”
  如下图所示:
 
 从运行结果中:
 
 我们可以看出连接赋值运算符在连接字符串的基础上,还有赋值功能。此外,第6行的指令与第9行的指令效果相同,但前者代码更简洁。
  八、PHP中的错误控制运算符
  PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;
  如果激活了track_error(这个玩意在php.ini中设置)特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。
  需要注意的是:错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。
  任务
  看看错误控制运算符的效果吧!
  在右边编辑器的第2行输入一条指令“$conn = @mysql_connect("localhost","username","password");”,如图所示:
 
 在右边编辑器的第2行输入一条指令“$conn = @mysql_connect("localhost","username","password");”,如图所示:
 
 取模算术符有啥用呢?
  假设我们要在一个考场安排了一场考试,对考生从1开始,都进行了编号,那么怎么让服务器帮助我们计算考生在的位置呢,进而打印考场的考生对照表呢?在右边编辑器里输入两条指令,如图所示:
 
 任务
  我来试一试:
  1、在第5行输入第一条指令,用于计算在第几排。
  $line = ceil($no/$maxLine);
  2、在第6行输入第二条指令,使用取模算术符计算所在位置。
  $row = $no%$maxLine?$no%$maxLine:$maxLine;
  运行结果如下:
 