> 백엔드 개발 > PHP 튜토리얼 > 两道面试题

两道面试题

WBOY
풀어 주다: 2016-06-23 13:37:56
원래의
867명이 탐색했습니다.

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],建议用前者,性能高

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿