php运行环境下: $a = 1;echo $a == 1 ? 2 : $a == 1 ? 3 : 4 ; 结果会是多少? js运行环境下: $a = 1;echo $a == 1 ? 2 : $a == 1 ? 3 : 4 ; 结果又是多少?
php的这个题目是有次面试的时候遇到的,我当时毫不犹豫的给的结果是2,当时面试官说你在看看你再看看我毫不犹豫的给的结果还是2,其实答案是3,面试官说是2个三元运算,然后我回去实验了一下,结果是3,然后又把php的那部分知识扫了一下, 但是后来遇到了js下的那个结果,我顺其自然的答了3,结果我又是我错了错在哪里,错在我并没有明白问题本身根源的所在,错在基础知识掌握不牢 下面解释下: PHP的?:是从左到右结合的: $a == 1 ? 2 : $a == 1 ? 3 : 4 等价于 ($a == 1 ? 2 : $a == 1) ? 3 : 4 JavaScript的?:是从右到左结合的: $a == 1 ? 2 : $a == 1 ? 3 : 4 等价于 $a == 1 ? 2 : ($a == 1 ? 3 : 4)
资料: php运算符优先级 js运算优先级 常见的语言三目运算符的结合顺序
C: 从右到左 C++: 从右到左 Java: 从右到左 PHP: 从左到右 JavaScript: 从右到左 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|