欢迎来到天天文库
浏览记录
ID:26505989
大小:26.91 KB
页数:9页
时间:2018-11-27
《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
此文档下载收益归作者所有