关于 0 == ‘aa’,返回 1 的面试题
原问:
请写出以下的输出结果:
$arr = [1, 'aa' => 8, 3, 4, 5];
foreach($arr as $key => $value){
print($key == 'aa' ? 10 : $value);
}
如果回答 1 10 3 4 5 , 那么恭喜,成功错误
这个题的考点在 当 0 == 'aa' 的布尔值
PHP 中整型和字符串比较时,将隐式将字符串转成整型
即 (int)'aa' = 0
那么 0 == 0 返回true
那么题目的答案就是 10 10 3 4 5
你入坑了吗?
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
foreach($arr = $key=> $value)php的循环是这么写的吗,语法都是错的。aa 那个是 true 不是应该输出 10 aa 3 4 5 吗?
:blush:
我也没看到 0 呀???
论
===的重要性php官方手册上是有详细说明的~~