PHP面试题试试看看你会不会也中招.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHP面试题试试看看你会不会也中招 这几道题是在德问上看到的,感觉挺有意思,拿来给 大家分享其中的陷阱,看看你会不会掉入其中。 第一题 复制代码代码如下: $arr=array(O=gt;1,〃aa〃=gt;2, 3, 4); foreach($arras$key=gt;$val){ print ($key==//aa,,?5: $val): 输出结果是多少?如果的答案是1534就掉入陷阱了。 先看看这个数组最终形成的结构: 复制代码代码如下: Array ( [o]=gt;1 [aa] =g t;2 =gt;3 [2]=gt;4 ) 然后遍历每一个元素的k ey看等不等于aa,等于就用 5替代。当我告诉你答案是5534的时候,你会不会有点惊 讶!难道0等于aa吗?是的,0就等于aa,这道题重点 就考你这个。在PHP中两个值进行逻辑判断时,如果两个 值的类型不一致PHP会自动把右边的值转换到左边的类型, 然后再进行判断。因此aa转换整形等于0,自然也就等于 左边的0 了。你可以使用全等于避免这种该情况,也就是 如果你写成: 复制代码代码如下: prin t ($key===a a,,?5: $val); 那么答案就是1534 了。 第二题 复制代码代码如下: $i= If : printf (〃%d \n〃,printf (〃%d〃,printf (〃%d〃,$i))): 输出结果是多少?如果你回答是11,或者111111就掉 入陷阱了。 先了解prin tf这个函数,prin tf不仅是打印函数, 它还有返回值。重点就在这 复制代码代码如下: var_dump (pr intf (%d,$i)); 你猜猜上面的结果是啥?先是pri ntf打印变量本身 11,然后printf会返回一个变量字符串长度的值,11有 两个字符,于是返回2,于是上面语句的执行结果等于: 复制代码代码如下: Hint (2) 清楚了这一点以后,再回过来看上面的试题,按照优 先级,限制性深度printf函数,打印11,返回2。接着到 第二级printf函数,打印2,返回1。最后到第三层,直 接打印1,所以执行结果是11 21。 第三题 复制代码代码如下: $a=3; $b =5; if($a=5||$b=7){ $a++; $b++; } echo $a. 〃〃. $b; 执行结果是多少?如果你回答68or46or6 6,那你就掉 入陷阱了。 第一个陷阱,认为答案等于46。估计你粗心把 $a=5| | $b=7看成$a==5| |$b==7,这是新手常犯的错误。 第二个陷阱,认为答案等于68。你识破7$a=5| |$b=7 这个骗局,但你没有注意到,逻辑或里只要依次执行直到 某个表达式结果为true,表达式后边的就不再执行,$a=5 返回true,后边的$b=7就不执行了。 第三个陷阱,认为答案等于66。0K,你识破了逻辑或 的规则,于是$a =5执行,$b=7不执行,但是你没有考虑到 这里是逻辑表达式,返回给$a的值是要转换为布尔值的。 这样看。 所以经过以上三个陷阱,你应该知道答案是多少了, 其实$a等于true以后,echo$a输出就是1,$b值不变,结 果就是16。 第四题 复制代码代码如下: $count =5; function get_count () { static$cou nt=0: return $count++; } ++$count: get _count (); ec hoget_count (): 执行结果是多少?如果你回答2,恭喜,你掉入陷阱了。 其实这道题主要考两点,第一点是static静态类型。 这种的值永远都是静态的,第一次调用声明等于0,并且自 增等于1。第二次调用,1再自增就等于2。但其实这里还 有一道陷阱,那就是++a与a++的区别,前++是先自增,后 ++是先返回值再自增,所以结果等于1。 第五题 复制代码代码如下: $a=c ount (〃567〃)+count (null ) +count (fal se); echo$a; 如果你回答3orl,恭喜,掉入陷阱了。 因为count (null )等于0,false也算一个值。所以 coun t (false)等于 1 o

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档