专题讲座:光盘\MR\Video\4\PHP的运算符.exe
视频速递:全面解读PHP的运算符
运算符是用来对变量、常量或数据进行计算的符号;它对一个值或一组值执行一个指定的操作。PHP的运算符包括字符串运算符、算术运算符、赋值运算符、递增或递减运算符、位运算符、逻辑运算符、比较运算符和条件运算符。
算术运算(Arithmetic Operators)符号,是处理四则运算的符号。在数字的处理中,应用得最多。常用的算术运算符如表4.10所示。
表 4.10 常用的算术运算符
在算术运算符中使用“%”求余,如果被除数($a)是负数的话,那么取得的结果也是一个负值。
【例4.20】 在下面的实例中分别应用上述五种运算符进行运算并分别输出结果。
实例位置:光盘 \MR\I nstance\4\4.20
本实例代码如下。
图 4.14 算术运算符的简单应用
运行结果如图4.14所示。
字符串运算符只有一个,即英文的句号“.”。它将两个字符串连接起来,结合到一起形成一个新的字符串。如果您学习过C语言或Java,那么必须注意PHP中的“+”号只做赋值运算符使用,而不能做字符串运算符。
【例4.21】 下面通过一个实例,观察“.”和“+”两者之间的区别。当使用“.”时,变量$m和$n两个字符串组成一个新的字符,当使用“+”时,PHP会认为这是一次运算。如果“+”号的两边有字符类型,则自动转换为整型,如果是字母,则输出为0,如果是以数字开头的字符串,则会截取字符串头部的数字,再进行运算。
本实例代码如下。
运行结果: 520PHP1 521 。
赋值运算符是把基本赋值运算符(“=”)右边的值赋给左边的变量或者常量。在PHP中的赋值运算符如表4.11所示。
表 4.11 PHP中常用的赋值运算符
位逻辑运算符是指对二进制位从低位到高位对齐后进行运算。在PHP中的位运算符如表4.12所示。
表 4.12 PHP中的位运算符
【例4.22】 下面应用位运算符对变量中的值进行位运算。
本实例代码如下。
运行结果如下: 8 12 4 − 9 。
算术运算符适合在有两个或者两个以上不同操作数的场合使用,但是,当只有一个操作数时,使用算术运算符是没有必要的。这时,就可以使用“++”或者“--”运算符,即递增或递减运算符。
递增或递减运算符有两种使用方法,一种是先将变量增加或者减少1后再将值赋给原变量,叫做前置递增或递减运算符;另一种是将运算符放在变量后面,即先返回变量的当前值,然后变量的当前值增加或者减少1,叫做后置递增或递减运算符。
【例4.23】 为了更好地理解递增或递减运算符,下面应用递增或递减运算符对实例中的变量进行递增或递减运算。
步骤为:定义两个变量,将这两个变量分别利用递增递减运算符进行操作,并输出结果,实例代码如下。
图 4.15 递增递减运算符
运行结果如图4.15所示。
逻辑运算符用来组合逻辑运算的结果,它是程序设计中一组非常重要的运算符。PHP的逻辑运算符如表4.13所示。
表 4.13 PHP的逻辑运算符
在逻辑运算符中,逻辑与和逻辑或这两个运算符有四种运算符号(&&、and和||、or),其中属于同一个逻辑结构的两个运算符号(例如,&&和and)之间却有着不同的优先级。
【例4.24】 下面分别应用逻辑或中的运算符号“||”和“or”进行相同的判断,但是因为同一逻辑结构的两个运算符(“||”和“or”)的优先级不同,输出的结果也不同。
(1)首先,定义三个布尔型变量并为变量赋值。
(2)其次,将三个变量分别利用逻辑运算符进行操作运算并返回结果,实例代码如下。
运行结果: true false 。
可以看到:两个if语句,除了or和||不同之外,其他完全一样,但最后的结果却是南辕北辙,正好相反。在实际应用中要多注意这样的细节。
比较运算符就是对变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则返回True,如果为假,则返回False。PHP中的比较运算符如表4.14所示。
表 4.14 PHP的比较运算符
这里面不太常见的是= = =和!= =。$a = = = $b,说明$a和$b不只是数值上相等,而且两者的类型也一样。!= =和= = =的意思差不多,$a != = $b就是说$a和$b或者数值不等,或者类型不等。
【例4.25】 下面应用比较运算符对变量中的值进行比较,设置变量$value =“100”,变量的类型为字符串型,将变量$value与数字100进行比较,会发现比较的结果非常有趣。其中使用的var_dump函数是系统函数,作用是输出变量的相关信息。
本实例代码如下。
图 4.16 比较运算符的应用
运行结果如图4.16所示。
三元运算符用于根据一个表达式在另外两个表达式中选择一个,而不是用来在两个语句或者程序中选择。三元运算符条件的使用最好放在括号里。
【例4.26】 下面应用三元运算符实现一个简单的判断功能,如果正确,则输出“三元运算”,否则输出“没有该值”。
本实例代码如下。
运行结果:三元运算
@错误屏蔽运算符:可以对程序中出现错误的表达式进行操作,进而对错误信息进行屏蔽,其使用的方法就是在错误的表达式前加上“@”即可。它只是对错误信息进行屏蔽,并没有真正解决错误。
在程序中使用的某些函数出现一些不必要(不影响程序运行的错误)的错误信息时,经常使用该运算符进行屏蔽。而对程序中的一些影响程序运行的错误,使用它不是解决问题的根本办法,不推荐使用。
下面了解该运算符的应用方法,在进行数学计算时会发生一些错误,例如,
这时屏幕上会显示错误消息:Warning: Division by zero in…\index.php on line 9
如果不想显示这个错误,就可以在表达式前加上@,实现代码如下。
这样,输出时就什么错误都不显示。当然,错误依然存在,只是看不到而已。
所谓运算符的优先级是指在程序中哪一个运算符先计算,哪一个后计算,与数学的四则运算遵循的“先乘除,后加减”是一个道理。
PHP的运算符在运算中遵循的规则是:优先级高的运算先做,优先级低的运算后做,同一优先级的操作按照从左到右的顺序进行。也可以像四则运算那样使用小括号,括号内的运算最先进行。PHP运算符优先级的一览表如表4.15所示。
表 4.15 PHP运算符的优先级
续表
这么多的级别,如果要想都记住是不太现实的,也没有这个必要。如果写的表达式真的很复杂,而且包含了较多的运算符,不妨多加点(),例如,
这样就会减少出现逻辑错误的可能。
表达式是构成PHP程序语言的基本元素,也是PHP最重要的组成元素。在PHP语言中,几乎所写的东西都是表达式,最基本的表达式形式是常量和变量。如“$m=20”,即表示将值20赋给变量$m。
表达式是通过具体的代码来实现的,是多个符号集合起来组成的代码,而这些符号只是一些对PHP解释程序有具体含义的最小单元。它们可以是变量名、函数名、运算符、字符串、数值和括号等。代码如图4.17所示。
图 4.17 表达式
这就是由两个表达式组成的脚本,即“fine”和“$a='word'”。
在PHP的代码中,使用分号(“;”)来区分表达式,表达式也可以包含在括号内。可以这样理解,一个表达式再加上一个分号,就是一条PHP语句。
应用表达式能够做很多事情,调用一个数组、创建一个类、给变量赋值等。
在编写程序时,应该注意表达式后面的这个分号“;”,不要漏写,这是一个出现频率很高的错误点。