- PHP+MySQL Web应用开发教程
- 李辉等编著
- 1499字
- 2021-03-27 03:04:04
2.5 PHP运算符
运算符是用来对变量、常量或数据进行计算的符号,它对一个值或一组值执行一个指定的操作。PHP运算符包括算术运算符、字符串运算符、赋值运算符、位运算符、递增运算符或递减运算符等。下面分别对各种运算符进行介绍。
2.5.1 算术运算符
算术运算符主要用于处理算术运算操作,常用的算术运算符及作用如表2-7所示。
表2-7 常用的算术运算符
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/60_02.jpg?sign=1739516552-BXeFvik5SGZbX0JUpbhqrlZoO8quHePP-0-f2b5738f5e426c918df4e8edb8143248)
注:在算术运算符中使用“%”求余,如果被除数($a)是负数的话,那么取得的结果也是一个负值。
【例2-19】通过算术运算符计算每月总的支出、剩余工资、房贷占工资的比例等。
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/60_03.jpg?sign=1739516552-0XiqkcZXrHnQX77y2lR4lIOvuTW0YfPo-0-adbdb89a633a69b0650be4011ac8c9c0)
运行结果如下:
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/61_01.jpg?sign=1739516552-rrMIC1NSe3jvsSHCUcoc9O2BfO4rK0lx-0-60eb432795b22e02fe8ba63f639fa248)
2.5.2 字符串运算符
字符串运算符主要用于处理字符串的相关操作,在PHP中字符串运算符只有一个,那就是“.”,该运算符用于将两个字符串连接起来,结合到一起形成一个新的字符串。应用格式如下:
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/61_02.jpg?sign=1739516552-xuWn8df0KmKyaic8MMrcYrFF0kQySDjR-0-5a48b68b4ac4ab245f74ddc6319fa2b3)
此运算符在前面的例子中已经使用,如例2-19中的:
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/61_03.jpg?sign=1739516552-AE5MKkP1d8Ys3OLmVyCn5pT3OQBhSOOn-0-1bd8076f39e01fae8e88a047576a6fe4)
此处使用字符串运算符将$c+$b的值与字符串“<br>”连接,在输出$c+$b的值后执行换行操作。
2.5.3 赋值运算符
赋值运算符主要用于处理表达式的赋值操作,PHP中提供了很多赋值运算符,其用法及意义如表2-8所示。
表2-8 常用赋值运算符
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/61_04.jpg?sign=1739516552-tHKE93xE7zHkluSXDxnbDtB0rkuQyuIv-0-6b2772dbb9f4566bda51a5e49a1b6ea1)
【例2-20】赋值运算符应用。
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/61_05.jpg?sign=1739516552-0G6kWG0lnM1DGXHR49c9KL6jILr1MJ6H-0-d1c42d446c47f1963e86e982dc62e455)
此处应用“=”运算符,为变量a赋值,下面再举一个复杂一点示例,代码如下:
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/61_06.jpg?sign=1739516552-AuRtLE1fInoliVQNHPr4wCyS5vVu9D0A-0-b0cba5416d28fb24663004eb4effcdb6)
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/62_01.jpg?sign=1739516552-GVR0Gr57teU0eTtx2rjHfhaBpLbVJJmU-0-267c392945b95caa5515cf6b5a90eb4a)
运行结果为:50。
注:在执行i=i+1的操作时,建议使用i+=1来代替。因为其符合C/C++的习惯,摈弃效率还高。
2.5.4 递增或递减运算符
递增运算符“++”和递减运算符“--”与算术运算符有些相同,都是对数值型数据进行操作。但算术运算符适合在两个或者两个以上不同操作数的场合使用,当只有一个操作数时,就可以使用“++”或者“--”运算符。
【例2-21】递增和递减运算符应用。
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/62_02.jpg?sign=1739516552-03BGKW3MUylA8PVhwBpILkxjSJxYshX4-0-d2a730a3592fd62b4442671c14cbf657)
运行结果为:
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/62_03.jpg?sign=1739516552-M2fw6VH626gQQFOAZDtLnVnHmyhx7WTX-0-96f4e92f5fe3d4bbe6a7e1e6f25972f1)
注:“ ”为HTML的空格标记。
上例中变量$b自加和$d自减后的值为什么没变?
当运算符位于变量前时(++$a),先自加,然后再返回变量的值;当运算符位于变量后时($a++),先返回变量的值,然后再自加,即输出的是变量a的值,并非a++的值。这就是为什么变量$b自加和$d自减后的值为什么没变的原因。
2.5.5 逻辑运算符
逻辑运算符对布尔数据进行操作,返回布尔型结果,是程序设计中一组非常重要的运算符。PHP的逻辑运算符如表2-9所示。
表2-9 PHP的逻辑运算符
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/63_01.jpg?sign=1739516552-Ll0WhtlqzxrFn0vnW2ZLpAvHzGCUBa7i-0-dd006f7c4bf355360b47d25d72918091)
【例2-22】使用逻辑运算符判断如果变量存在,且值不为空,则执行数据的输出操作,否则弹出提示信息(变量值不能为空!)。
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/63_02.jpg?sign=1739516552-nsPFvqfPvvMfZRJXMwSp1qm5KwiAh9wd-0-49ca4e47c42efc07250c95bfc30465c0)
运行结果为:弹出对话框,显示信息为“变量值不能为空!”。
注:本例在if语句中,应用逻辑与判断当变量存在,且值不为空的情况下输出数据,否则输出提示信息。
isset()函数检查变量是否设置,如果设置则返回true,否则返回false。
empty()函数检测变量是否为空,如果为空则返回true,否则返回false。
注:当逻辑表达式中后一部分的取值不会影响整个表达式的值时,为了提高程序效率,后一部分将不再做任何数据运算。例如,表达式$a&&$b,若$a为false,则$b不再计算;若$a||$b中的$a为true,$b也不需要计算。
2.5.6 比较运算符
比较运算符主要用于比较两个数据的值,返回值为一个布尔类型。PHP中的比较运算符如表2-10所示。
表2-10 PHP的比较运算
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/63_03.jpg?sign=1739516552-lHNUp2elfWScjdQpArIlpXDm5mxntPRh-0-6d2eb5a4fd783575beb77b9d63eac918)
这里面===和!==不太常见。
【例2-23】使用比较运算符比较小刘与小李的工资。
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/64_01.jpg?sign=1739516552-m0TqI5kNL2NwV6uQJ6RptE9EYN9tQyBT-0-d0acb37ba38bde723e68ec62718b703e)
运行结果为:
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/64_02.jpg?sign=1739516552-wT9hPdsOZLmUMC2wVQX57CAH8MJ8ocpF-0-34e14a1cd777ac09cabd2899bc4ce589)
2.5.7 条件运算符
条件运算符可以提供简单的逻辑判断,其应用格式为:表达式1?表达式2:表达式3
如果表达式1的值为true,则执行表达式2,否则执行表达式3。
【例2-24】条件运算符应用:
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/64_03.jpg?sign=1739516552-EswbMvvMGYRnOYTJF9E7D4JYnqnZ6mmH-0-9256d9f42477976ee31c0aba04de169f)
运行结果为:zero。
2.5.8 运算符的使用规则
所谓使用规则就是当表达式中包含多种运算符时,运算符的执行顺序,与数学四则运算中的先算乘除后算加减是一个道理。PHP的运算符优先级如表2-11所示。
表2-11 运算符的优先级
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/65_01.jpg?sign=1739516552-naY7MIf4xr9bKiL8Y8H1NjT6xiFUfLaU-0-8c4d7042aa64331cbdd2a04b2b6bc818)
注:这么多的级别,如果要想都记住是不太现实的,也没有这个必要。如果写的表达式真的很复杂,而且包含较多的运算符,不妨多加(),例如:$a and(($b!=$c) or(5*(50-$d)))。这样就会减少出现逻辑错误的可能。