谷歌镜像 伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

PHP运算符优先级与数据类型的关系

来源:网络转载 浏览:29232次 时间:2023-09-16

运算符优先级指定了两个表达式绑定得有多“紧密”。例如,表达式 1 + 5 * 3 的结果是 16 而不是 18 是因为乘号(“*”)的优先级比加号(“+”)高。必要时可以用括号来强制改变优先级。例如:(1 + 5) * 3 的值为 18

如果运算符优先级相同,其结合方向决定着应该从右向左求值,还是从左向右求值——见下例。

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

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

对具有相同优先级的运算符,左结合方向意味着将从左向右求值,右结合方向则反之。对于无结合方向具有相同优先级的运算符,该运算符有可能无法与其自身结合。举例说,在 PHP 中 1 < 2 > 1 是一个非法语句,而 1 <= 1 == 1 则不是。因为 T_IS_EQUAL 运算符的优先级比T_IS_SMALLER_OR_EQUAL 的运算符要低。

传送门:http://www.php.net/manual/zh/language.operators.precedence.php


略速互联网笔记原创:

PHP是弱类型语言,在运算过程中会因为运算的顺序对中间变量的数据类型造成影响,起因是同事发的这个例子:

<?php

$a=1;

$b=&$a;

$c=(++$a)+(++$a)+(++$a);


var_dump($c);

输出是10而不是9,原因是当$b=&$a时,$a的数据类型变为了引用,当做运算操作时,++$a返回的是一个引用类型,做第一个加法运算时,相当于两个引用类型指向相同数据的变量相加,这时该数据由于已经做了两次自增操作,相当于执行了3+3结果为6,注意此时6的结果为一个数,所以算式继续执行的相当于6+(++$a) = 6+4 既结果为10;

同样,可以是测试如下代码:

$b=&$a;

$a=1;

var_dump(0 + (++$a) + (++$a));

$a=1;

var_dump(0 + ( (++$a) + (++$a) ) );


还有:

$b=&$a;

$a=1;

var_dump( ( (++$a) + (++$a) ) + (++$a) );

$a=1;

var_dump( (++$a) + ( (++$a) + (++$a) ) );


甚至:

$b=&$a;

$a=1;

var_dump( ( (++$a) + (++$a) + (++$a) ) + (++$a) );

$a=1;

var_dump( (++$a) + ( (++$a) + (++$a) + (++$a) ) );

$a=1;

var_dump( ( (++$a) + (++$a) ) + ( (++$a) + (++$a) ) );

$a=1;

var_dump( (++$a) + ( (++$a) + ( (++$a) + (++$a) ) ) );


转载请注明出处:http://www.lvesu.com/blog/main/cms-15.html


  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net