数码资讯
几个欺骗性的php面试问题,试着看看你会不会动
这些问题都是从美德的角度来看的。分享陷阱很有趣,看看你是否会掉进陷阱里。 第一个问题 复制代码代码如下所示: $ ARR =阵列(0 = > 1,AA= > 2, 3, 4); foreach(ARR美元美元美元关键= > Val){ 打印(美元=AA:5 $瓦尔); } 输出结果是什么如果答案是1
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
这些问题都是从美德的角度来看的。分享陷阱很有趣,看看你是否会掉进陷阱里。
第一个问题
复制代码代码如下所示:
$ ARR =阵列(0 = > 1,AA= > 2, 3, 4);
foreach(ARR美元美元美元关键= > Val){
打印(美元=AA:5 $瓦尔);
}
输出结果是什么如果答案是1534,它就落入陷阱。
首先看看这个数组最终形成的结构:
复制代码代码如下所示:
阵列
(
{ 0 } = 1
{ aa = 2
{ 1 } = 3
{ 2 } = 4
)
然后遍历每个元素的键不等于AA,等于5,当我告诉你答案是5534时,你会有一点惊讶吗!0等于aa吗是的,0等于AA当两值在PHP逻辑判断,如果两种类型的值是不一致的,PHP自动转换值右边左边的类型,然后进行判断。因此,AA转换为0,和自然,它等于0个在左边。你可以使用它来避免这种情况,那就是,如果你把它:
复制代码代码如下所示:
打印(美元= AA :5 $瓦尔);
所以答案是1534。
第二题
复制代码代码如下所示:
我=会;
printf(%d
输出结果是什么如果你回答11,或者111111,你就会陷入陷阱。
首先要了解printf函数的功能,这里不仅是一个打印功能,而且返回值。重点是这个
复制代码代码如下所示:
var_dump(printf(%d
猜猜结果如何首先,printf打印变量本身11,然后printf将返回一个可变字符串的长度值,11有两个字符,然后返回2,所以上述语句执行的结果是公平的:
复制代码如下:(2)11int
在那之后,回头看看上面的问题,根据优先级,限制printf函数,输出11,并返回2。然后去二级printf函数,输出2,并返回1。在第三层底,1是直接印刷,所以执行的结果是1121。
第三个问题
复制代码代码如下所示:
$ = 3;
$ = 5;
如果(a = 5 | | { $ B = 7)
美元+;
美元+;
}
$。$;
死刑的结果是什么如果你回答68、46或66,你就会落入陷阱。
第一个陷阱是,答案是46。你粗心的美元= 5美元估计,B = 7 | | | | $美元= = 5 = = 7,这是一个常见的错误。
二陷阱,答案是68美元。你= 5,B = 7美元| |这个骗局,但你有没有注意到,只要执行逻辑顺序或直到一个表达式为真,后面的表达不执行,美元= 5或true,在B = 7美元不执行。
第三陷阱,答案是66.ok,你看通过逻辑或规则,所以美元= 5美元= 7 B执行,不执行,但你不认为它的逻辑表达式,并返回的值为一个转换为布尔值,看它的方式。
因此,在这三个陷阱之后,你应该知道答案。当$ a等于true时,回声$ A的输出为1,而b值不变,其结果是16。
第四个问题
复制代码代码如下所示:
$=5;
功能get_count(){
静态$ = 0;
返回$ + +;
}
+数;
get_count();
get_count(回声);
死刑的结果是什么如果你回答2,恭喜你,你掉进了陷阱。
事实上,主要的问题是两点,第一是静态类型,该值始终是静态的,第一个调用声明等于0,并增加等于1。第二呼叫,从1增加为2。但事实上是一个陷阱,就是+ +和+之间的差异,在第一个增量后+ + + +是第一个返回值的增量,所以结果等于1。
第五个问题
复制代码代码如下所示:
$ =计数(567 )+计数(NULL)+计数(false);
回声$;
如果你回答3或1,恭喜你落入陷阱。
因为计数(NULL)等于0,false也是一个值。所以计数(false)等于1。
第一个问题
复制代码代码如下所示:
$ ARR =阵列(0 = > 1,AA= > 2, 3, 4);
foreach(ARR美元美元美元关键= > Val){
打印(美元=AA:5 $瓦尔);
}
输出结果是什么如果答案是1534,它就落入陷阱。
首先看看这个数组最终形成的结构:
复制代码代码如下所示:
阵列
(
{ 0 } = 1
{ aa = 2
{ 1 } = 3
{ 2 } = 4
)
然后遍历每个元素的键不等于AA,等于5,当我告诉你答案是5534时,你会有一点惊讶吗!0等于aa吗是的,0等于AA当两值在PHP逻辑判断,如果两种类型的值是不一致的,PHP自动转换值右边左边的类型,然后进行判断。因此,AA转换为0,和自然,它等于0个在左边。你可以使用它来避免这种情况,那就是,如果你把它:
复制代码代码如下所示:
打印(美元= AA :5 $瓦尔);
所以答案是1534。
第二题
复制代码代码如下所示:
我=会;
printf(%d
输出结果是什么如果你回答11,或者111111,你就会陷入陷阱。
首先要了解printf函数的功能,这里不仅是一个打印功能,而且返回值。重点是这个
复制代码代码如下所示:
var_dump(printf(%d
猜猜结果如何首先,printf打印变量本身11,然后printf将返回一个可变字符串的长度值,11有两个字符,然后返回2,所以上述语句执行的结果是公平的:
复制代码如下:(2)11int
在那之后,回头看看上面的问题,根据优先级,限制printf函数,输出11,并返回2。然后去二级printf函数,输出2,并返回1。在第三层底,1是直接印刷,所以执行的结果是1121。
第三个问题
复制代码代码如下所示:
$ = 3;
$ = 5;
如果(a = 5 | | { $ B = 7)
美元+;
美元+;
}
$。$;
死刑的结果是什么如果你回答68、46或66,你就会落入陷阱。
第一个陷阱是,答案是46。你粗心的美元= 5美元估计,B = 7 | | | | $美元= = 5 = = 7,这是一个常见的错误。
二陷阱,答案是68美元。你= 5,B = 7美元| |这个骗局,但你有没有注意到,只要执行逻辑顺序或直到一个表达式为真,后面的表达不执行,美元= 5或true,在B = 7美元不执行。
第三陷阱,答案是66.ok,你看通过逻辑或规则,所以美元= 5美元= 7 B执行,不执行,但你不认为它的逻辑表达式,并返回的值为一个转换为布尔值,看它的方式。
因此,在这三个陷阱之后,你应该知道答案。当$ a等于true时,回声$ A的输出为1,而b值不变,其结果是16。
第四个问题
复制代码代码如下所示:
$=5;
功能get_count(){
静态$ = 0;
返回$ + +;
}
+数;
get_count();
get_count(回声);
死刑的结果是什么如果你回答2,恭喜你,你掉进了陷阱。
事实上,主要的问题是两点,第一是静态类型,该值始终是静态的,第一个调用声明等于0,并增加等于1。第二呼叫,从1增加为2。但事实上是一个陷阱,就是+ +和+之间的差异,在第一个增量后+ + + +是第一个返回值的增量,所以结果等于1。
第五个问题
复制代码代码如下所示:
$ =计数(567 )+计数(NULL)+计数(false);
回声$;
如果你回答3或1,恭喜你落入陷阱。
因为计数(NULL)等于0,false也是一个值。所以计数(false)等于1。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。