PHP面试题:$a $a 与 $a $a $a
让我们来先看一道题:
<?php
$a = 1;
$b = $a $a ; //结果:$a=2,$b=3
这道题不是很难,显然在PHP中 的优先级比 高,所以先执行 $a ,这时 $a的值为2
再看一题:
<?php
$a = 1;
$b = $a $a $a ;
这时 $b 的值应该是多少呢?
答案是:3
为什么还是3呢?不是 的优先级比 高吗?先执行 $a 后,$a的值应该是2,结果是5才对啊。
其实这是正确答案是 3,一开始自己也认为应该是5。
解释:
运算符是从左边往右结合的,上面的表达式相当于
$ = ($a $a) $a
根据左结合的原则
//先计算 $a $a
$b = 2 $a ;
//这时就要比较 和 的运算符优先级了
$b = 2 1; //这时$a = 2
这是都是蛋疼的PHP笔试题,在实际项目代码中应该使用括号来避免这些问题的出现。
您可能感兴趣的文章:
PHP面试题:$a $a 与 $a $a $a
PHP不用第三个变量交换两个变量的值的方法总结
php程序员面试之笔试题及答案
有关PHP引用的解释
php实现a到z及其中的”奇怪现象”
PHP运算符的学习笔记
php入门基础教程之php运算符
golang基础教程
jquery nth-child()选择器的简单应用
php email正则表达式详解