10个值得深思的php面试问题

10个值得深思的php面试问题

ID:26505989

大小:26.91 KB

页数:9页

时间:2018-11-27

10个值得深思的php面试问题_第1页
10个值得深思的php面试问题_第2页
10个值得深思的php面试问题_第3页
10个值得深思的php面试问题_第4页
10个值得深思的php面试问题_第5页
资源描述:

《10个值得深思的php面试问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、10个值得深思的PHP面试问题Q1第一个问题关于弱类型$str1='yabadabadoo';$str2='yaba';if(strpos($str1,$str2)){echo""".$str1.""contains"".$str2.""";}else{echo""".$str1.""doesnotcontain"".$str2.""";}正确运行的输出结果:"yabadabadoo"doesnotcontain"yaba"strpos是返回字符串str2在str1的位置,没有找到则返回false然而实际上这次

2、返回了0而在if语句中0也被当作false,所以我们需要对false做类型判断,正确的代码如下:$str1='yabadabadoo';$str2='yaba';if(strpos($str1,$str2)!==false){echo""".$str1.""contains"".$str2.""";}else{echo""".$str1.""doesnotcontain"".$str2.""";}需要注意的是我们使用了!==,在php和JS中=!相对==更为严格需要要求数据类型一致。Q2下面的输出结果会是怎样?

3、$x=5;echo$x;echo"
";echo$x+++$x++;echo"
";echo$x;echo"
";echo$x---$x--;echo"
";echo$x;实际运行结果是511715关于$x++和$x--这个问题其实非常容易遇见,我们只需记住$x++使用最近的值,然后才自增。运算符的优先级,++是明显高于+,因此先执行++再执行+。关于运算符的优先级,有的时候我们真的可以通过括号来让我们的程序更让人直观的了解,毕竟代码不光是用于执行的,有的时候或许团队的可读性也是提高效率的一种。

4、Q3关于变量的引用;$a='1';$b=&$a;$b="2$b";请问$a和$b的值各位多少部分第一时间会想到$a='1'$b='21',仔细一看$b=&$a,这里$b是变量$a的引用而不是直接赋值。Q4下面是true还是falsevar_dump(0123==123);var_dump('0123'==123);var_dump('0123'===123);var_dump(0123==123);//false,PHP会默认把0123当作8进制来处理,实际转化为10进制就是83,显然这不是相等的。var_dump('0123

5、'==123);//true这里php会非常有趣的将'0123'转换成一个数字而且默认去掉了前面的0也就是123==123var_dump('0123'===123);//false很显然上面的问题已经说过了数字和字符串类型不一致。Q5下面的代码有什么问题吗?输出会是什么,怎样修复它$referenceTable=array();$referenceTable['val1']=array(1,2);$referenceTable['val2']=3;$referenceTable['val3']=array(4,5);$tes

6、tArray=array();$testArray=array_merge($testArray,$referenceTable['val1']);var_dump($testArray);$testArray=array_merge($testArray,$referenceTable['val2']);var_dump($testArray);$testArray=array_merge($testArray,$referenceTable['val3']);var_dump($testArray);实际输出如下:arra

7、y(2){[0]=>int(1)[1]=>int(2)}NULLNULL运行的时候你或许还能看到下面的警告Warning:array_merge():Argument#2isnotanarrayWarning:array_merge():Argument#1isnotanarrayarray_merge需要传入的参数都是数组,如果不是,则会返回null。你可以这样修改$testArray=array_merge($testArray,(array)$referenceTable['val1']);var_dump($testA

8、rray);$testArray=array_merge($testArray,(array)$referenceTable['val2']);var_dump($testArray);$testArray=array_merge($testArray,(array)$ref

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。