2011-08-05 10 views
5

PHP에서 현재 null 인 배열이있는 경우 정의되지 않은 인덱스에 액세스하면 E_NOTICE 수준의 오류가 발생하지 않아야합니까?정의되지 않은 인덱스 동작

내가 다음 코드 조각이있는 경우 :

$myArray = null; 
echo $myArray['foo']['bar']; 

내가 오류를 기대하지만이 문제없이 실행합니다. 내 로그 수준을 E_ALL로 설정했는지 확인했습니다. 내가 누락되었거나 데이터를 수정하려고하지 않는 한 정의되지 않은 인덱스에 대해 null을 반환하는 PHP가 있습니까?

+0

나를 위해, 그것은 이상한 행동입니다. $ myArray = array(); echo $ myArray [ 'foo'] [ 'bar']; 내가 생각하기에 오류가 발생합니다. – RiaD

+0

@ Dan W : FabioG가 맞습니다. – linguini

+0

@RiaD : 오류를 찾을 수 없습니다. http://www.meandeviation.com/tutorials/learnphp/php-syntax-check/v4/do-syntax-check.php – linguini

답변

3

예, 정의되지 않은 색인은 null이 아닌 변수에 대해서만 트리거합니다 (이유는 묻지 않음). 이것은 통지를 유발할 것입니다 :

<?php 
    error_reporting(E_ALL); 
    $myArray = array(); 
    echo $myArray['foo']['bar']; 
?> 
2

아니요. $ myArray가 null로 설정된 경우 오류가 표시되지 않습니다. 빈 배열이거나 null을 제외한 다른 값이면 E_NOTICE 수준 오류를 반환합니다. 사실 나는 왜 그런지 모르지만 그대로있는 것입니다.

+1

그냥 테스트를 제공하고, 네 말이 맞아. null로 설정하면 오류는 발생하지 않지만 빈 배열은 오류를 발생시킵니다. –

관련 문제