一道PHP面试题

<来自
cnmm22:http://blog.csdn.net/cnmm22/article/details/44810929>

$a=0;

$b=0;

If($a=3||$b=3){

$a++;

$b++;

}

Echo$a.”,”.$b;

写出运行结果。

结果是1,1.

知识点1:if里的运算顺序。实际上顺序是,If($a=3||$b=3){  = If($a=(3||$b=3)){     因为|| 的优先级会大于赋值符号。

知识点2:|| 短路功能,|| 这个叫短路或,(3||$b=3)等于多少?等于1,因为(3||$b=3)的意思是3是不是真?是真,|| 后面的赋值运算$b=3 就不会再计算了,那最后,b还是0,因为$b=3根本没执行,而(3||$b=3)=真。

知识点3:在If($a=3||$b=3){ 之后a等于多少?上面说了,(3||$b=3)=真,那a就等于真。在PHP里,真就等于1,a就等于1。顺带注意,在PHP里真是1,假是多少?假不是0,而是空,啥都没有。

所以结果,a++ =1,b++=1。

$a=0;

$b=0;

If($a=3|$b=3){

$a++;

$b++;

}

Echo$a.”,”.$b;

运行结果又是多少?

答案是4,4。

这里要注意一个知识点,或 和 短路或。 |  是或,而|| 是短路或,(3|$b=3)等于多少?等于3,因为,首先 或会让后面 $b=3继续运算,所以,b就等于3了,另外,或是位运算,所以,(3|$b=3)=3,所以a=3。

时间: 2024-12-15 19:44:44

一道PHP面试题的相关文章

一道java面试题-方法静态分派

一道面试题,下面程序的输出是? public class StaticDispatch { static abstract class Human{ } static class Man extends Human{ } static class Woman extends Human{ } public void sayHello(Human guy){ System.out.println("hello , guy!"); } public void sayHello(Man gu

一道 JavaScript 面试题

有一道 JavaScript 面试题. f = function () { return true; }; g = function () { return false; }; (function() { if (g() && [] == ![]) { f = function () { return false; }; function g() { return true; } } })(); console.info(f()); 首先看前两行 var f = function () {

输入url到页面加载都发生了什么事情?(一道软件测试面试题)

文章首发于公众号:软件测试er 输入url到页面加载都发生了什么事情?这是一道软件测试面试题,且相关知识其实还有多种问法: Question 1请讲一下tcp三次握手 OK等你把这个记好了,下次面试:Question 2 tcp和http有什么区别?? Question 3 http和https区别? Question 4 http请求方法? Question 5常见的返回状态码有哪些?都是什么含义?...一开始我也只是应付面试,去了解这些问题,但是发现自己并不能很好的理解.而在平时测试中需要定

一道python面试题引发的血案

这里说的是一道阿里校招的面试题:一行代码实现对列表a中的偶数位置的元素进行加3后求和? 今天去面试同样遇到了这个题目,这道题考察的是对python高阶函数map/filter的灵活运用(具体的使用方法可以参考'廖雪峰的官方网站').作为一个小白的我对高阶函数的运用本就不多,当时连高阶函数的名字都记不清了(书到用时方恨少),妥妥的被虐了个无路可走.无奈记下题目回来求助于度娘了,没想到是阿里的校招题目,网上也给出了答案,但是很明显该答案是存在一些问题的,具体什么问题在这里就不讲了,大家可以自行查找,

从一道阿里面试题说起

前言 昨晚老东家微信群里一堆前同事充满兴致的在讨论一道据说是阿里P7的面试题,不管题目来源是不是真的,但题目本身却比较有意思,虚虚实实去繁化简,却能看出一个人对Java知识掌握的深度以及灵活度. 闲话少叙,咱们直接“上菜”. 正文 1.原代码如下所示,问执行之后打印的数是什么? 1 static Integer count = 0; 2 public static void main(String[] args) { 3 for (int i = 0; i < 1000; i++) { 4 ne

一道Javascript面试题引发的血案

文章首发于szhshp的第三边境研究所,转载请注明 先来看几道面试题,公司的开发们都尝试做了一下,然而基本没有人能够全部答对. 覆盖的考点很多,也有一些难度,题目挺有意思建议手动执行一边玩玩. Question 1 for (var i = 0; i <5 ; i++) { setTimeout(function(){ console.log(i) ),1000} } console.log(i) Q:这道题目会输出什么? A:这道题目还比较简单,如果对Javascript稍微有一点深入的同学都

最近很火的携程Java 工程师的一道面向对象面试题

最近这道面试题,传遍程序员各大小园地,本小白特摘抄整理与大家一起学习: 原题: package com.gxlee; public class Base { private String baseName= "base"; public Base() { callName(); } public void callName(){ System.out.println(baseName); } static class Sub extends Base{ private String b

汽车之家一道SQL 面试题,大家闲来无事都来敲一敲

写在前面 上周去汽车之家面试,拿到这个SQL笔试题顿时感觉到有些陌生,因为好长时间不写SQL语句了,当时只写了表设计,示例数据和SQL语句都没写出来. 汽车之家应该用的SQL Server, 编程题一般都没有固定答案,大家可以按照自己的思路来试试,我在文章底部放出参考的链接. SQL笔试题 参考答案(我个人发在CSDN的帖子) http://bbs.csdn.net/topics/391091585

背包算法解决一道华为面试题

闲来无事,看到了一篇文章,华为面试题,题目如下: 有两个数组a,b,大小都为n,数组元素的值任意,无序: 要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小 网址是http://bbs.chinaunix.net/thread-855126-1-1.html这个. 估计多数人想到的都是先sort,再交叉,或者一条龙什么的,包括我.后来一想不对啊,如果前面的都是个位数,最后一个是999怎么办? 抱着学习的态度一页一页往下翻,好多人都是在提出来自己想法,但是我拿我这个999验

一道js面试题

 当然这道面试题并不一定就能在你面试的时候遇到,但是不怕一万就怕万一,会的多一些还是好的. 1 <script type="text/javascript"> 2 var str = 'asdfssaaasasasasaasassaassaa'; 3 var json = {};//定义一个json对象 4 //判断该字符串截取出来的这一个字符是不是在join对象中存在 5 for (var i = 0; i < str.length; i++) { 6 7 if (