首页 后端开发 php教程 php运算符优先级顺序详解

php运算符优先级顺序详解

Apr 19, 2017 pm 04:37 PM

在我们前面讲PHP逻辑运算符的时候,提到了PHP运算符的优先级,所谓的运算符优先级,指的是在表达式中哪一个运算符先计算,哪一个后计算,就好像,表达式 1 + 5 * 3 的结果

是 16 而不是 18 是因为乘号(“*”)的优先级比加号(“+”)高。如果有需要的话,可以用括号来强制改变优先级。例如:(1 + 5) * 3 的值为 18。

PHP的运算符在运算中遵循的规则是:优先级高的操作先执行,优先级低的操作后执行,如果同一优先级,则按照从左到右的顺序进行,例如,"-"是左联的,那么 1 - 2 - 3 就等同于 (1 - 

2) - 3 并且结果是 -4. 另外一方面,"="是右联的,所以 $a = $b = $c 等同于 $a = ($b = $c)。

1486188938564607.gif括号内的运算符最先执行,括号的使用,哪怕在不是必要的场合下,通过括号的配对来明确标明运算顺序,而非靠运算符优先级和结合性来决定,可以提高代码的可读性。

表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

结合方向 运算符 附加信息
clone new clone和new<
[array()
**算术运算符
++ -- ~ (int) (float) (string) (array) (object) (bool) @类型和递增/递减
instanceof类型
!逻辑运算符
* / %算术运算符
+ - .算术运算符和字符串运算符
<< >> 位运算符
< <= >            >= 比较运算符
==            !=            ===            !==            <>            <=> 比较运算符
& 位运算符和引用<
^位运算符
|位运算符
&&逻辑运算符
||逻辑运算符
??比较运算符
? :三元运算符
= += -= *= **= /= .= %= &= |= ^= <<= >>= 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符

这么多的优先级别,如果想都记得很清楚,是不太现实的,也没有必要,如果写的表达式很复杂,而且包含了较多的运行符,不放多使用括号,想下面这样

<?php
$a and (($b !=$c) or (5*(50-$d)));
?>
登录后复制

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

有时使用括号可以增强代码的可读性。例如,下面这样:

<?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4

//三元运行的结合
$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2

$a = 1;
$b = 2;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5


?>
登录后复制


以上是php运算符优先级顺序详解的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1250
24
如何在Windows 11中安全地设置应用程序的高优先级? 如何在Windows 11中安全地设置应用程序的高优先级? May 06, 2023 pm 06:28 PM

Windows通过为它们分配优先级,在将系统资源分配给最需要它的进程和程序方面做得非常好。您安装的大多数应用程序都可以在默认的“正常”优先级级别下完美运行。 然而,有时,您可能需要以高于默认正常水平的水平运行程序,例如游戏,以提高它的性能。但这样做是有代价的,而且是一笔值得深思的交易。 当您将应用设置为高优先级时会发生什么?Windows运行不同的进程和程序时总共有六个优先级——低、低于正常、正常、高于正常、高和实时。Windows将根据它们的优先级对应用程序进行排名和排队。优先级越高,应用

在 Windows 11 上禁用通知的 8 大方法(和 3 个提示) 在 Windows 11 上禁用通知的 8 大方法(和 3 个提示) May 05, 2023 pm 12:49 PM

通知是提高生产力的好工具,但有时会让人分心。无论您是要完全禁用通知还是要为选定的应用程序禁用通知,此页面都是您所需要的。我们还将了解如何使用FocusAssist自动禁用和启用通知。此外,如果“设置”应用程序不适合您,您可以使用命令提示符、注册编辑器和组策略编辑器等工具,使用更加极客的方式来禁用通知。查看以下教程,了解在Windows11上禁用通知的7种方法。为什么要在Windows11上禁用通知?禁用通知有其各种优点,其中一些已在下面列出。但是,请记住,禁用重要应用程序的通知可能会

如何在 Windows 11 的任务管理器中更改优先级 如何在 Windows 11 的任务管理器中更改优先级 May 17, 2023 am 10:26 AM

什么是进程优先级?计算机与其创造者并无太大区别。尽管看起来他们在同时处理多项任务,但实际上他们是自发地在不同任务之间兼顾。但并非所有进程或程序都可以平等地分配资源。 重要的进程,例如保持系统尽可能平稳运行所必需的进程,被赋予高优先级,而那些仅在外围工作的进程可以被分配较低的优先级。这有助于系统即使在承受很大压力时也能顺利运行。  什么是优先级? 进程有6个不同的优先级。这些如下:低—— 这是最低的优先级。具有“低”优先级的进程只有在所有其他任务完成后才会获得必要的资源。BelowNorma

如何在 Windows 11 中为应用程序或进程打开或关闭效率模式 如何在 Windows 11 中为应用程序或进程打开或关闭效率模式 Apr 14, 2023 pm 09:46 PM

Windows 11 22H2中的新任务管理器对高级用户来说是一个福音。现在,它通过附加数据提供更好的 UI 体验,以密切关注您正在运行的流程、任务、服务和硬件组件。如果您一直在使用新的任务管理器,那么您可能已经注意到新的效率模式。它是什么?它是否有助于提高 Windows 11 系统的性能?让我们来了解一下!Windows 11 中的效率模式是什么?效率模式是任务管理器中的一

c语言开根号运算符是什么 c语言开根号运算符是什么 Mar 06, 2023 pm 02:39 PM

在c语言中,没有开根号运算符,开根号使用的是内置函数“sqrt()”,使用语法“sqrt(数值x)”;例如“sqrt(4)”,就是对4进行平方根运算,结果为2。sqrt()是c语言内置的开根号运算函数,其运算结果是函数变量的算术平方根;该函数既不能运算负数值,也不能输出虚数结果。

Linux进程优先级调整方法详解 Linux进程优先级调整方法详解 Mar 15, 2024 am 08:39 AM

Linux进程优先级调整方法详解在Linux系统中,进程的优先级决定了其在系统中的执行顺序和资源分配情况。合理调整进程的优先级可以提高系统的性能和效率。本文将详细介绍Linux中如何调整进程的优先级,并提供具体的代码示例。一、进程优先级概述在Linux系统中,每个进程都有一个与之相关联的优先级。优先级的范围一般是-20到19,其中-20表示最高优先级,19表

golang 报错:“invalid use of … operator” 如何解决? golang 报错:“invalid use of … operator” 如何解决? Jun 24, 2023 pm 05:54 PM

对于Golang开发者来说,“invaliduseof…operator”是一个常见的报错。这个报错通常会在使用变长参数函数时出现。它在编译时就会被检测出来,并指出哪些部分有问题。这篇文章将介绍如何解决这个报错。一、什么是变长参数函数变长参数函数也被称为可变参数函数,是Golang语言中的一种函数类型。使用变长参数函数可以像如下方式定义多个

如何在 Windows 11 上自定义通知设置 如何在 Windows 11 上自定义通知设置 May 02, 2023 pm 03:34 PM

自定义常规通知设置让我们从通知设置的基础开始。首先,如果您想在Windows11上进行通知设置,有两种方法可以做到。最快的方法是右键单击任务栏一角的日期和时间部分,然后选择通知设置。或者,您可以使用“开始”菜单打开“设置”应用程序,然后在“系统”部分(默认打开)中选择“通知”。在这里,您会看到通知设置的概览。您可以完全禁用通知,或单击第一个选项Notifications以展开下拉菜单。此菜单有一些附加选项,例如关闭通知声音。您还可以选择是否要在锁定屏幕上显示通知,包括提醒和来电的特定设置。

See all articles