【web 开发基础】PHP 快速入门(11)-PHP 运算符之运算符的优先级

举报
迷彩 发表于 2023/06/09 17:41:59 2023/06/09
【摘要】 前言PHP 开发基础开速入门系列目录:《【web 开发基础】php 开发基础快速入门 (1)-PHP 介绍及开发环境快速安装和基本使用介绍》《【web 开发基础】php 开发基础快速入门 (2)-PHP 的程序开发》《【web 开发基础】php 开发基础快速入门 (3)-PHP 程序符号标记和程序注释的使用及空白符详解》《【web 开发基础】php 开发基础快速入门 (4)-PHP 常量详解...

前言

PHP 开发基础开速入门系列目录:

  1. 【web 开发基础】php 开发基础快速入门 (1)-PHP 介绍及开发环境快速安装和基本使用介绍

  2. 【web 开发基础】php 开发基础快速入门 (2)-PHP 的程序开发

  3. 【web 开发基础】php 开发基础快速入门 (3)-PHP 程序符号标记和程序注释的使用及空白符详解

  4. 【web 开发基础】php 开发基础快速入门 (4)-PHP 常量详解

  5. 【web 开发基础】PHP 快速入门(5)-PHP 运算符之算术运算符和字符串运算符详解
  6. 【web 开发基础】PHP 快速入门(6)-PHP 运算符之赋值运算符详解
  7. 【web 开发基础】PHP 快速入门(7)-PHP 运算符之比较运算符详解
  8. 【web 开发基础】PHP 快速入门(8)-PHP 运算符之逻辑运算符详解
  9. 【web 开发基础】PHP 快速入门(9)-PHP 运算符之位运算符详解
  10. 【web 开发基础】PHP 快速入门(10)-PHP 其他运算符详解


到这里,PHP的基本语法也讲得差不多了,认真学习的同学应该对PHP有了大致的了解。后面接下来就是分支语句的介绍。


运算符的优先级

在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的运算顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。


优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们分别是单目运算符、条件运算符、赋值运算符。

基本的优先级需要记住:

指针最优,单目运算优于双目运算。如正负号。

先算术运算,后移位运算,最后位运算。请特别注意:2 << 3 + 4 && 6等价于 (2 << (3 + 4))&&6

逻辑运算最后计算。

所谓的运算符的优先级,是指在表达式中哪一个运算符应该先计算,就像我们小学学习算术的四则混合运算一样:“先乘除,后加减”。例如:表达式1+6*5的结果是31而不是35,是因为乘号(*)的优先级比加号(+)的优先级高。必要时可以使用括号来强制改变优先级,比如:表达式:(1+6)*5的值为35.如果运算符优先级相同,则使用从左往右的左联顺序。运算符的优先级具体如下图

注:表中同一行中的运算符具有相同的优先级,此时它们的结合方向决定求值顺序

PHP会根据上图中的运算符的优先级确定表达式的求值顺序,同时还可以引用小括号“()”来控制运算顺序,任何小括号内的运算将最优先进行。在以后的程序开发中尽量使用小括号来控制改变优先级,上表无需死记硬背,多用自然就熟悉。平时最好使用小括号改变表达式的优先级更加易于懂


什么是表达式

在介绍运算符的时候一直在说表达式,那在PHP表达式是什么?下面咱们具体了解一下:

表达式是PHP中最重要的基石,在PHP中,几乎所有编写的任何代码都可以看作一个表达式,通常是变量、常量和运算符号的组合。简单却最精确的定义一个表达式的方式就是“任何有值的东西”。以下为一些常见的表达式:

  1. 最基本的表达式是常量和变量,例如:赋值语句$a = 1;

  2. 稍微复杂的表达式就是函数,比如:$a = foo();

  3. 使用算术运算符中的前后自增和自减也是表达式.如:$a++, $a--,++$a, --$a;

  4. 常用的表达式类型是:"比较表达式", 如: $a>4; $a==5;$a>=5&&$a<=11

  5. 组合的运算赋值也是常用的表达式, 如: $a += 3; $b *= 4; $c = ($a += 5)

  6. 还有三元运算符(? : )也是一种常用表达式: $a = ($b>4 ? $c=4 : $c=11)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。