PHP面试常考易错题之运算符优先级

开篇先来一张php官网给出的运算符优先级的图片

PHP面试常考易错题之运算符优先级

living example one

$a = 1;
echo $a+$a++;
//output 3

考点:

1)运算符优先级以及短路的问题

分析:

1)从开篇头部图片可以看出 "++" 优先级是最高的,那么他将先运算,但是"++"又是先用该字符值后累计

2)当运算到$a的时候已经变成2,由于"++"已经执行了

3)2+1 最后输出3

living example two

$x = 5;
echo $x; 
 
echo $x+++$x++; 
echo $x; 
echo $x---$x--; 
echo $x; 
实际运行结果是
5 11 7 1 5

考点:

1)运算符优先级问题

分析:

1)$x++ 和 $x--这个问题其实非常容易遇见,我们只需记住$x++使用最近的值,然后才自增。

2)运算符的优先级,++ 是明显高于 +,因此先执行++ 再执行 + 。关于运算符的优先级,有

的时候我们真的可以通过括号来让我们的程序更加让人直观的了解,毕竟代码它不光是用于执行

的,有的时候或许团队的可读性也是提高效率的一种。

living example three

$bool = true && false;
var_dump($bool);
//output:false

考点:

1)算术运算符优先级的问题

分析:

1)&& > = 运算符,依次执行顺序为&& 之后是= ,因此输出false

living example four

$a = 0;
$b = 0;
if( $a=3>0 || $b=3>0 ){
 $a++;
 $b++;
 echo $a.'
';
 echo $b.'
';
}
//output: 1 1

考点:

1)算术运算符优先级的问题

分析:

1)运算符优先级 > > || > = ,因此就会出现3>0,那么一个为true,整个条件都为true,将进入if条件

相关推荐