![PHP 7+MySQL 8动态网站开发从入门到精通(视频教学版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/141/36862141/b_36862141.jpg)
3.8 运算符
PHP包含多种类型的运算符,常见的有算术运算符、字符串运算符、赋值运算符、比较运算符和逻辑运算符等。
3.8.1 算术运算符
算术运算符是最简单、最常用的运算符。常见的算术运算符如表3-1所示。
表3-1 常见的算术运算符
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-T61_56762.jpg?sign=1739158779-5VlXTvmIRIYeV40dNJlBMWsrndep6rEA-0-11c82dd889b075f5ab75f05613c379d8)
算术运算符的用法如下面的实例所示。
【例3.16】(实例文件:源文件\ch03\3.16.php)
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-P61_56761.jpg?sign=1739158779-jTenhgb9l0gCCXUYegB9yClWUgUwYKOg-0-0781d23e0c12ba987c2cd0c5d7f99529)
本程序的运行结果如图3-17所示。
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-P62_7161.jpg?sign=1739158779-YY9meILBBoWJoYu9dtJInYPP48HH5lg5-0-abdf819ccc37ec9ec15ca4fe1d223608)
图3-17 程序的运行结果
提 示
除了数值可以进行自增运算外,字符也可以进行自增运算操作。例如,b++的结果将等于c。
3.8.2 字符串运算符
字符串运算符是把两个字符串连接起来变成一个字符串的运算符,使用“.”来完成。如果变量是整数类型或浮点类型,PHP也会自动把它们转换为字符串输出,如下面的实例所示。
【例3.17】(实例文件:源文件\ch03\3.17.php)
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-P62_56765.jpg?sign=1739158779-fPZti24U5Wi5dFRLqgnF2jyDOEg0NksP-0-1a683c8c2344a27cdc209b2d2b8de7fb)
本程序的运行结果如图3-18所示。
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-P62_7162.jpg?sign=1739158779-2kXEAxQIuyLqtLDbpsl6CtMCbP5phVAf-0-41c28edf672dd33da773d544cf5d70ad)
图3-18 程序的运行结果
3.8.3 赋值运算符
赋值运算符的作用是把一定的数据值加载给特定变量。
赋值运算符的具体含义如表3-2所示。
表3-2 赋值运算符的含义
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-T63_56766.jpg?sign=1739158779-BQxvjKIjccSeM4I3j3KnTrdVd8df0Ln6-0-1c1a30349091d4f13db624a27862a955)
例如,$a-=$b等价于$a=$a-$b,其他赋值运算符与之类似。从表3-2可以看出,赋值运算符可以使程序更加简练,从而提高执行效率。
3.8.4 比较运算符
比较运算符用来比较两端数据值的大小。比较运算符的具体含义如表3-3所示。
表3-3 比较运算符的含义
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-T63_56767.jpg?sign=1739158779-CILjsFaKTeNTvd15ouL5frBB6N66qwLS-0-73898f53b65d3f4d0f16b58f2802c30a)
其中,“===”和“!==”需要特别注意一下。$b===$c表示$b和$c不只是数值上相等,而且两者的类型也一样;$b!==$c表示$b和$c有可能是数值不等,也可能是类型不同。
【例3.18】(实例文件:源文件\ch03\3.18.php)
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-P63_56768.jpg?sign=1739158779-DTRu0MYV3lVjsLHkAUP9lk2htaWg1spn-0-35cdea2aa769e13594a2eb9eb8270282)
本程序的运行结果如图3-19所示。
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-P64_7703.jpg?sign=1739158779-TFVQ2nst79wj45cqS3MG6JLL0hgU1UJc-0-513582c04b6f30ce88602c5a74a4389e)
图3-19 程序的运行结果
3.8.5 逻辑运算符
编程语言最重要的功能之一就是进行逻辑判断和运算。逻辑与、逻辑或、逻辑非都是逻辑运算符。逻辑运算符的含义如表3-4所示。
表3-4 逻辑运算符的含义
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-T64_56771.jpg?sign=1739158779-kuBwLUpXp17i7WNmeT73ZGdID3AxKeu6-0-1eba79b7283485b88f551c0de84e15fe)
【例3.19】(实例文件:源文件\ch03\3.19.php)
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-P64_56770.jpg?sign=1739158779-cbiJzFVyTT4ocSeYYKY7bngoVC6KuNfj-0-b5906c8354fb1ecc68dd79c9a2e145c6)
本程序的运行结果如图3-20所示。
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-P65_7883.jpg?sign=1739158779-x6z9pKx3OEOieJg9GomfxnwMRKDnI9QL-0-8db1385fcf2b803e12df3d49bd2b3aa9)
图3-20 程序的运行结果
3.8.6 按位运算符
按位运算符是把整数按照“位”的单位来进行运算。按位运算符的含义如表3-5所示。
表3-5 按位运算符的含义
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-T65_56773.jpg?sign=1739158779-etafbZQp2ufqaSnFABoKnN5Lszg5uHXN-0-0428360c13d6d447e981bebe06010365)
【例3.20】(实例文件:源文件\ch03\3.20.php)
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-P65_56774.jpg?sign=1739158779-lUsMjBPlonruJvfyXXYiweFQqpAX90g9-0-e9df17bae74cac1591ea7862d5c21126)
本程序的运行结果如图3-21所示。
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-P66_7990.jpg?sign=1739158779-jFkRFVv19ciD6vUfMzxTQbB4682KCnvu-0-f48e8e01bdf5a6968bcadf3c9c3ef68a)
图3-21 程序的运行结果
3.8.7 否定控制运算符
否定控制运算符分为逻辑非和按位求反运算符,它们的含义如表3-6所示。
表3-6 否定控制运算符的含义
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-T66_56775.jpg?sign=1739158779-7rtZbDmFBXGxVCKrbO0PT0mf7QZwcF7n-0-f84c5c9f4b7f1edabbc91313b400e896)
3.8.8 错误控制运算符
错误控制运算符用“@”来表示,在一个操作数之前使用,用来屏蔽错误信息的生成。
【例3.21】(实例文件:源文件\ch03\3.21.php)
<?php $err = @(20 / 0) ; // 如果不想显示这个错误,在表达式前加上“@” ?>
本程序的运行结果如图3-22所示。
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-P66_7991.jpg?sign=1739158779-PXM0gAnWAnE3jQtnH37NRzGmCKT2IzLP-0-a0905700edc2b2988e84c9bb985f0d8a)
图3-22 程序的运行结果
3.8.9 三元运算符
三元运算符作用在三个操作数之间。这样的操作符在PHP中只有一个,即“? :”,语法形式如下:
(expr1)?(expr2):(expr3)
如果expr1成立,就执行expr2,否则执行expr3。
【例3.22】(实例文件:源文件\ch03\3.22.php)
<?php $a = 5; $b = 6; echo ($a > $b) ? "大于成立" : "大于不成立"; echo "<br/>"; //大于不成立 echo ($a < $b) ? "小于成立" : "小于不成立"; echo "<br/>"; //小于成立 ?>
本程序的运行结果如图3-23所示。
![](https://epubservercos.yuewen.com/77C0CB/19549639608907506/epubprivate/OEBPS/Images/Figure-P67_8083.jpg?sign=1739158779-bhOQQFsRU5cn1Yxpmnv7UkqxLKIQ0Cds-0-f2a47bf17293153360a592d09f2be84c)
图3-23 程序的运行结果
3.8.10 运算符的优先级和结合规则
运算符的优先级和结合其实与正常的数学运算符的规则十分相似。
· 加减乘除的先后顺序与数学运算中的完全一致。
· 对于括号,先括号内再括号外。
· 赋值由右向左运行,即依次从右边向左边的变量进行赋值。