
2.6 PHP操作符
“+”“-”“*”“/”都称为操作符。这是因为它们会操作或处理符号两边的数字。“=”也是一个操作符,称为赋值操作符,我们可以用它为一个变量赋值。操作符就是会对它两边的对象有影响或有操作的符号。这种影响可能是赋值、检查或改变一个或多个这样的对象。PHP的操作符主要包括算术操作符、字符串操作符、赋值操作符、逻辑操作符、比较操作符、递增或递减操作符和条件操作符,这里只介绍一些常用的操作符。
2.6.1 算术操作符

算术操作符是处理四则运算的符号,在数字处理中应用得最多。常用的算术操作符如表2.6所示。
表2.6 常用的算术操作符

学习笔记
在算术操作符中使用%求余,如果被除数($a)是负数,那么取得的结果也是一个负数。
计算坐车去某个地方需要花费多长时间
本实例将编写一个程序,计算以80千米/小时的速度行驶200千米需要花费多长时间,答案为时/分的格式,如X小时Y分钟。相应的公式(用文字表述)是“时间等于距离除以速度”。代码如下:

运行结果如图2.4所示。

图2.4 需要花费的时间
2.6.2 字符串操作符

字符串操作符只有一个,即英文的句号“.”。它将两个字符串连接起来,结合成一个新的字符串。
例如,将“明日科技”和“有限公司”连接起来。代码如下:

结果为:

多学两招
对于字符串型数据,既可以用单引号,又可以用双引号。分别应用单引号和双引号来输出同一个变量,其输出结果完全不同,双引号输出的是变量的值,而单引号输出的是变量名字符串。例如:

2.6.3 赋值操作符

赋值操作符是把基本赋值操作符“=”右边的值赋给左边的变量或者常量。PHP中的赋值操作符如表2.7所示。
表2.7 PHP的赋值操作符

学习笔记
混淆“=”和“==”是编程中最常见的错误之一。
2.6.4 递增或递减操作符

两个加号“++”连接在一起,称为递增操作符。两个减号“--”连接在一起,称为递减操作符。递增或递减操作符有两种使用方法,一种是将操作符放在变量前面,即先将变量进行加1或减1的运算后再将值赋给原变量,称为前置递增或递减操作符。如图2.5所示,先加1后赋值。另一种是将操作符放在变量后面,即先返回变量的当前值,然后变量的当前值进行加1或减1的运算,称为后置递增或递减操作符。如图2.6所示,先赋值后加1。

图2.5 前置递增操作符执行顺序

图2.6 后置递增操作符执行顺序
例如,定义两个变量,将这两个变量分别利用递增操作符和递减操作符进行操作,并输出结果。代码如下:

运行结果如下:

2.6.5 逻辑操作符

逻辑操作符用来组合逻辑运算的结果,是程序设计中一组非常重要的操作符。PHP中的逻辑操作符如表2.8所示。
表2.8 PHP中的逻辑操作符

在逻辑判断时,经常要使用逻辑操作符,在后续章节中也会使用到逻辑操作符。
2.6.6 比较操作符

比较操作符就是对变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则返回true,如果比较结果为假,则返回false。PHP中的比较操作符如表2.9所示。
表2.9 PHP中的比较操作符

其中,不太常见的就是===和!==。如果$a === $b,则说明$a和$b不只是数值上相等,而且两者的类型也一样。例如false和0,在判断时,它们的关系是相等(==)的,但不是恒等(===)的。
2.6.7 条件操作符

条件操作符(?:),也称为三元操作符,用于根据一个表达式在另两个表达式中选择一个,而不是在两个语句或程序中选择。条件操作符最好放在括号里使用。
例如,应用条件操作符实现一个简单的判断功能,如果正确则输出“条件运算”,否则输出“没有该值”,代码如下:

上述代码运行结果为:

2.6.8 操作符的优先级

操作符的优先级是指在应用中哪一个操作符先计算,哪一个操作符后计算,与数学四则运算遵循的“先乘除,后加减”规则是一个道理。
PHP操作符在运算中遵循的规则是:优先级高的运算先执行,优先级低的运算后执行,同一优先级的运算按照从左到右的顺序执行,也可以像四则运算那样使用圆括号,圆括号内的运算先执行。表2.10从高到低列出了操作符的优先级。同一行中的操作符具有相同优先级,此时它们的结合方向决定求值顺序。
表2.10 操作符的优先级

这么多的级别,如果想都记住是不太现实的,也没有必要。如果表达式很复杂,而且包含了较多操作符,则可以使用括号,例如:

这样就会减少出现逻辑错误的可能。