Home  >  Article  >  php教程  >  PHP运行符优先级的面试题

PHP运行符优先级的面试题

WBOY
WBOYOriginal
2016-06-08 17:20:281084browse

优先级通常是讲运行算了,在php中各种运算符是非常的多了,在这里我就来为各位整理一份面试公司可能会常出的优先级例子,具体如下。

<script>ec(2);</script>


先看看题目

echo '1'.print(2)+3;

正确的结果应该是

511对于这个答案,我说“!@##¥%¥%……”,没办法答案确实没错。
那么我们来分析一下为什么会是这个答案,如标题所言这是一道坑爹的的优先级的PHP题目,那就按优先级的思路的分析(反推)。

1、先执行print

print(2)+3;//等同于print(2+3),这时缓冲区输出5。别问我为什么,手册里说的

2、print是一个函数,有返回结果,int类型

print(5);//结果等于1,这时候echo '1'.1,这个时候缓冲区又输出了11

3、最终的结果(按输出顺序):511

补充一些关于PHP优先级知识:

运算符优先级 


下表从低到高列出了运算符的优先级。 
  结合方向    运算符
  左      ,
  左      or
  左      xor
  左      and
  右      print
  右      = += -= *= /= .= %= &= |= ^=                      ~=   >= 
  左      ? :
  左      ||
  左      &&
结合方向        运算符
  左      |
  左      ^
  左      &
  无      == != === !==
  无      >= 
  左      >
  左      +  -  .
  左      *  /   %
  右      ! ~ ++ -- (int) (float) (string) (array) (object) @
  右      [
  无      new

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn