加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

深入剖析PHP运算符优先级

发布时间:2022-06-23 19:44:38 所属栏目:PHP教程 来源:互联网
导读:刚看PHP手册中 Boolean 布尔类型 数据类型时,看到了评论中一个关于运算符优先级的问题,以前也讲过在实际项目中不要出现这些需要人为判断运算符优先级的代码,都应该使用括号来规避这个问题的出现. 周五一朋友来着一段代码来问我,说他看不懂这段代码,觉得这
  刚看PHP手册中 Boolean 布尔类型 数据类型时,看到了评论中一个关于运算符优先级的问题,以前也讲过在实际项目中不要出现这些需要人为判断运算符优先级的代码,都应该使用括号来规避这个问题的出现.
 
  周五一朋友来着一段代码来问我,说他看不懂这段代码,觉得这段代码有问题,代码类似:
 
  $array1 = array(1, 2);
  $array2 = array(3, 4);
  $result = emptyempty($array1) == 3 ? $array1 : $array2;
  我一看应该是运算符优先级的问题.按理说,这些运算符优先级的问题是不应该让它出现在项目代码中的,只能让它在面试问题中,程序员应该在书写代码过程中使用括号来避免这种不确定问题的出现,项目中的代码应该是那种我们一看就知道结果的,而不是需要我们费劲脑子才能知道结果的,这种优先级代码的结果有时候并不是我们相信的那样,看看下面的例子:
 
  <?php
  if ($a = 100 && $b = 200) {
       var_dump($a, $b);
  }

  代码如下:
 
  <?php
  $x=TRUE;
  $y=FALSE;
  $z=$y OR $x; ?>  
  代码2:  
  <?php
  $x=TRUE;
  $y=FALSE;
  $z=$y || $x;
  ?>
  这种代码在实际项目中是不应该出现的,都应该用下面的代码替换:
 
  $z = ($y OR $x);$z = ($y || $x)。
 
 

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!