两道面试题解决方法
程序员文章站
2022-05-19 13:01:40
...
两道面试题
1. 下面语句输出什么?为什么?
if ($a=$b) printf(“a==b”);
else printf(“a!=b”);
2. $array[‘anykey’]和$array[anykey]有什么区别?
(我的想法:第一题 因为$a=$b ,而$b没赋值,所以两个都为空,输出"a==b".但实际运行时输出"a!=b",这个我就不解了.
第二题 我就不知道这题的用意了,一个索引是字符,一个是变量吧)
------解决思路----------------------
1、a!=b
题目没给 $b 赋值所以 $b 空,$a=$b 返回空,进入 false 分枝
2、
$array[‘anykey’] 中的 anykey 是字符串
$array[anykey] 中的 anykey 是常量
当屏蔽了 E_NOTICE 级别错误 时两者一样
------解决思路----------------------
1. $a=$b
因为$b没有值,所以是null,$a=$b后,$a也是null,所以if($a) 为null 即false
如果加一句
$b=1;
if ($a=$b) printf("a==b");
else printf("a!=b");
这样就返回true
2.
$array[‘anykey’]和$array[anykey]
如果没有加单引,系统会在找不到后自动帮你加上再查找一次。所以是一样,不过如果不加会有notice提示,并且需要查多一次导致资源浪费。
------解决思路----------------------
1.楼主可以单独输出 $a=$b 的值就知道为什么输出"a!=b"
2.$array[‘anykey’]和$array[anykey],建议用前者,性能高
1. 下面语句输出什么?为什么?
if ($a=$b) printf(“a==b”);
else printf(“a!=b”);
2. $array[‘anykey’]和$array[anykey]有什么区别?
(我的想法:第一题 因为$a=$b ,而$b没赋值,所以两个都为空,输出"a==b".但实际运行时输出"a!=b",这个我就不解了.
第二题 我就不知道这题的用意了,一个索引是字符,一个是变量吧)
------解决思路----------------------
1、a!=b
题目没给 $b 赋值所以 $b 空,$a=$b 返回空,进入 false 分枝
2、
$array[‘anykey’] 中的 anykey 是字符串
$array[anykey] 中的 anykey 是常量
当屏蔽了 E_NOTICE 级别错误 时两者一样
------解决思路----------------------
1. $a=$b
因为$b没有值,所以是null,$a=$b后,$a也是null,所以if($a) 为null 即false
如果加一句
$b=1;
if ($a=$b) printf("a==b");
else printf("a!=b");
这样就返回true
2.
$array[‘anykey’]和$array[anykey]
如果没有加单引,系统会在找不到后自动帮你加上再查找一次。所以是一样,不过如果不加会有notice提示,并且需要查多一次导致资源浪费。
------解决思路----------------------
1.楼主可以单独输出 $a=$b 的值就知道为什么输出"a!=b"
2.$array[‘anykey’]和$array[anykey],建议用前者,性能高
相关文章
相关视频
推荐阅读
-
Table ‘xxx’ is marked as crashed and should be repaired 错误解决方法参考
-
MySQL使用innobackupex备份连接服务器失败的解决方法
-
MySQL重置root密码提示"Unknown column ‘password"的解决方法
-
.Net获取URL中文参数值的乱码问题解决方法总结
-
安装IIS6.0程序是出现无法复制文件zclientm.exe的解决方法介绍
-
C# HttpClient Cookie验证解决方法
-
基于Android中实现定时器的3种解决方法
-
解析Android游戏中获取电话状态进行游戏暂停或继续的解决方法
-
将文件放到Android模拟器的SD卡中的两种解决方法
-
深入android中The connection to adb is down的问题以及解决方法