`
chinagdvea
  • 浏览: 132299 次
  • 性别: Icon_minigender_1
  • 来自: 韶关
社区版块
存档分类
最新评论

一个php运算符优先级问题

阅读更多
先看一个运算符优先级表

Operator Precedence(运算符优先级)
引用
Associativity Operators Additional Information
non-associative clone new clone and new
left [ array()
non-associative ++ -- increment/decrement
right ~ - (int) (float) (string) (array) (object) (bool) @ types
non-associative instanceof types
right ! logical
left * / % arithmetic
left + - . arithmetic and string
left << >> bitwise
non-associative < <= > >= <> comparison
non-associative == != === !== comparison
left & bitwise and references
left ^ bitwise
left | bitwise
left && logical
left || logical
left ?: ternary
right = += -= *= /= .= %= &= |= ^= <<= >>= => assignment
left and logical
left xor logical
left or logical
left , many uses


引用
&& 优先于 = 优先于 and


但是

引用
$a = 100 && $b = 200


按照运算符优先级规则顺序应该是

引用
$a = ( ( 100 && $b ) = 200 )


但是php里有规定,

引用
Note: Although = has a lower precedence than most other operators, PHP will still allow expressions similar to the following: if (!$a = foo()), in which case the return value of foo() is put into $a.


所以实际效果是

引用
( $a = 100 )&& ( $b = 200 )


相当于把 && 变成了 and

另外,引用鸟哥的一个例子

引用
最后, 顺便说一下, PHP对应于T_BOOLEAN_AND 还定义了 T_LOGICAL_AND(and) 和 T_LOGICAL_OR(or) , 这俩个的优先级都低于等号, 于是就会有了, 很多PHP入门教材示例代码中经典的:

$result = mysql_query(*)  or die(mysql_error());
分享到:
评论

相关推荐

    Java、C++、C语言、PHP、Python运算符优先级对照表.xls

    Java、C++、C语言、PHP、Python运算符优先级对照表.xls

    PHP学习 运算符与运算符优先级

    ### PHP学习:运算符与运算符优先级 在PHP编程语言中,理解并掌握运算符及其优先级至关重要。本文将详细介绍各种类型的运算符以及它们在PHP中的应用。 #### 算术运算符 算术运算符用于执行基本的数学运算。以下是...

    PHP 关于访问控制的和运算符优先级介绍

    在同一个级别中,运算符遵循从左至右的解析顺序。例如: - 在表达式$a=5||$b=7&&$c=10中,由于逻辑运算符的优先级关系,&&比||具有更高的优先级,因此先计算$b=7&&$c=10,再将结果与$a=5进行||运算。 - 在赋值运算...

    PHP程序设计-3期(KC016) 2.5.9优先级常见问题.docx

    在PHP程序设计中,运算符优先级是编程过程中必须掌握的关键概念之一,它决定了表达式中不同运算的执行顺序。不正确地理解和应用运算符优先级可能会导致程序逻辑错误,进而影响程序的正常运行。本节我们将深入探讨PHP...

    【自学PHP】第三课:PHP运算符

    在 PHP 中,算术运算符会自动将非数值类型的操作数转换成一个数字。例如: ```php $intData_1 = 13; $intData_2 = 2; echo $intData_1 % $intData_2; ``` 二、赋值运算符 赋值运算符用于将一个值赋给变量。在 PHP...

    PHP程序设计-3期(KC016) 2.5.9优先级拓展知识.doc

    有时,一个表达式的输出结果可能与预期不符,这时检查运算符的优先级顺序可能是找到问题的关键。 总之,PHP中的运算符优先级是确保代码逻辑正确性的基础。开发者应当熟悉这些规则,并在编写复杂的表达式时善用括号...

    PHP程序设计-3期(KC016) 2.5.4比较运算符常见问题.docx

    在PHP中,“=”是一个赋值运算符,它将右边的值赋给左边的变量。例如: ```php $x = 5; ``` 在这里,"="将数字5赋给了变量$x。然而,当你想要检查两个值是否相等时,应该使用双等于运算符“==”。例如: ```php if ...

    PHP程序设计-3期(KC016) 2.5.9优先级课后习题.doc

    在PHP中,运算符的优先级规则是固定的,可以查阅官方文档或使用在线的运算符优先级工具来帮助记忆。在编写代码时,如果不确定运算顺序,可以使用括号来明确指定执行顺序,避免出现意外的结果。 此外,对于学习PHP的...

    PHP程序设计-3期(KC016) 2.5.6逻辑运算符常见问题.docx

    当且仅当两个表达式中的一个为真时,`xor`返回真。如果两者都为真或者都为假,`xor`返回假。这在需要确定一个条件是唯一满足时非常有用。 例如: ```php $c = true; $d = true; if ($c xor $d) { // 这里不会执行,...

    PHP程序设计-3期(KC016) 2.5.1算术运算符常见问题..docx

    因此,当你想要表示除法时,必须使用“/”,如`5 / 3`,这将返回一个浮点数,表示5除以3的结果。 接下来,我们讨论问题3,关于对余数运算符“%”的理解。在PHP中,“%”是取模运算符,它返回两个数相除后的余数。...

    PHP编程基础--PHP运算符.ppt

    三元运算符,也称为条件运算符,提供了一种简洁的条件赋值方式。它的语法是:“$expression1 ? $expression2 : $expression3”。如果$expression1为真,则执行$expression2,否则执行$expression3。这个运算符在需要...

    第讲-PHP的运算符与表达式优秀文档.ppt

    运算符允许我们执行不同的操作,如数学计算、比较和逻辑判断,而表达式则是由一个或多个运算符和变量组成的代码片段,用于计算出特定的值。下面我们将详细讨论PHP中的各种运算符和表达式。 首先,PHP拥有丰富的...

    php程序设计测试题含答案.docx

    这些知识点涵盖了 PHP 的文件操作、数组操作、赋值运算符、逻辑运算符、循环结构、GD 函数库、MySQL 分页、函数参数、数组使用、运算符优先级、程序控制、图形扩展、日期时间、文件操作和数学函数等方面。

    传智播客_韩顺平_php从入门到精通

    传智播客_韩顺平_php从入门到精通 视频教程 第40讲 三元运算符 类型运算符 运算符优先级.wmv ) 您可以上传小于60MB的文件

    良心出品php基础知识期末考试题.doc

    这些问题涵盖了 PHP 的基础知识点,包括 MySQL 连接、PHP 循环语句、超全局变量、运算符优先级、Cookie 存储、变量类型、字符串比较、复选框类型、SESSION 会话、最近一条查询信息、结构类型变量、客户端 Cookies ...

    php非常变态的面试题

    1. 优先级:PHP中的运算符优先级是有规定的,需要了解各个运算符的优先级,以免出错。在这个例子中,-的优先级比%的优先级低,所以先计算%再计算-。 2. static 变量:static 变量只在第一次调用函数时赋值,以后...

    数据类型,常量,变量及运算符

    运算符的优先级和结合性是编写正确表达式的关键。 在提供的文件列表中,"5.运算符(一).pptx"可能涵盖了基本的算术和关系运算符,"2.常量.pptx"可能详细解释了常量的定义和使用,"1.数据类型.pptx"会介绍各种数据...

Global site tag (gtag.js) - Google Analytics