`
chinagdvea
  • 浏览: 125272 次
  • 性别: 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从入门到精通

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

    PHP读书笔记_运算符详解

    例如,你需要计算123乘以456等于多少,这时候就需要一个符号,告诉服务器,你需要做乘法运算。 PHP中的运算符有哪些?PHP运算符一般分为算术运算符、赋值运算符、比较运算符、三元运算符、逻辑运算符、字符串连接...

    PHP5与MySQL5从入门到精通.rar

    2.6.11 运算符的优先级 2.7 流程控制 2.7.1 if结构 2.7.2 switch结构 2.7.3 while循环 2.7.4 for循环 2.7.5 foreach语句 2.7.6 declare语句 2.7.7 exit和retunl语句 2.8 包含代码 2.9 本章小结 第3章 函数 3.1...

    用PHP中的 == 运算符进行字符串比较

    最近在Greg Beaver’s的blog上发表的一篇新文章 comparing strings in PHP with the == operator 中提及了PHP的 == 运算符在对字符串进行比较时值得注意的问题。 在某些情况下,PHP会把类数值数据(如含有数字的...

    PHP基础之运算符的使用方法

    1、算术运算符:+、-、*、/、%。 2、递增/递减运算符:如$a++,$a–,++$a,–$a. 如: &lt;?php$a=10;$b=5;$c=$a++; //先赋值,后自增。$c=$a,$a=$a+1$d=$b–; //先赋值,后自减。$d=$b,$b=$a-1echo ‘$a=’.$a.”||...

    php中OR与|| AND与的区别总结

    本身没有区别,习惯问题 ,但是有时候牵涉到运算符优先级的问题,结果会不同,记录下。 例如: 复制代码 代码如下:$p = 6 or 0; var_dump($p);//int(6) $p = 6 || 0; var_dump($p);//bool(true) $p = 6 and 0; var_...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    三元运算符 类型运算符 运算符优先级 8-20 2.顺序控制 分支控制(if ifelse switch) 程序流程图 8-20 3.循环控制①(for) 8-20 4.循环控制②(while dowhile) 打印金字塔案例 8-20 5.打印金字塔案例评讲 布置练习题 8-...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    三元运算符 类型运算符 运算符优先级 8-20 2.顺序控制 分支控制(if ifelse switch) 程序流程图 8-20 3.循环控制①(for) 8-20 4.循环控制②(while dowhile) 打印金字塔案例 8-20 5.打印金字塔案例评讲 布置练习题 8-...

    (全)传智播客PHP就业班视频完整课程

    解答学生问题--一个ip绑定多个域名 8-19 2.php运行过程时序图 php书写规范 8-19 3.php基本语法介绍 php数据类型介绍 8-19 4.整型细节说明 8-19 5.布尔细节 浮点数细节 字符串细节 算术运算符① 8-19 6.算术运算符② ...

    史上最全传智播客PHP就业班视频课,8月份视频

    三元运算符 类型运算符 运算符优先级 8-20 2.顺序控制 分支控制(if ifelse switch) 程序流程图 8-20 3.循环控制①(for) 8-20 4.循环控制②(while dowhile) 打印金字塔案例 8-20 5.打印金字塔案例评讲 布置练习题 8-...

    PHP使用逆波兰式计算工资的方法

    首先需要分配2个栈,一个作为临时存储运算符的栈S1(含一个结束符号),一个作为输入逆波兰 式的栈S2(空栈),S1栈可先放入优先级最低的运算符#,注意,中缀式应以此最低优先级的运算符结束。可指定其他字符,不...

    浅谈JS中逗号运算符的用法

    一、由于目前正在功读JavaScript技术,所以这里拿JavaScript为例。你可以自己在PHP中试试。 二、JavaScript语法比较复杂,因此拿JavaScript做举例。 最近重新阅读JavaScript权威指南这本书,应该说很认真的阅读,...

    php网络开发完全手册

    1.3.1 第一个PHP程序Hello, world 6 1.3.2 学习PHP应该准备哪些软件 8 1.3.3 相关知识领域的介绍 9 1.4 程序运行环境的搭建 10 1.4.1 Apache简介 10 1.4.2 安装Apache与PHP 10 1.4.3 使用phpinfo()确认Apache与PHP ...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    解答学生问题--一个ip绑定多个域名 8-19 2.php运行过程时序图 php书写规范 8-19 3.php基本语法介绍 php数据类型介绍 8-19 4.整型细节说明 8-19 5.布尔细节 浮点数细节 字符串细节 算术运算符① 8-19 6.算术运算符② ...

    黑帽渗透编程篇.txt

    补上昨天运算符与优先级.mp4 ----7.for循环.mp4 ----8.函数.mp4 ----9.return+引用函数.mp4 ----10.数组.mp4 ----11.时间戳+系统变量+文件操作.mp4 ----12.GET跟POST请求.mp4 ----13.三元运算符.mp4 ----14.mysql...

Global site tag (gtag.js) - Google Analytics