2008-11-21 2 views
1

PHP에서 연관 배열을 사용하여 많은 일을 처리하고 있음을 알고 있습니다.php의 연관 배열에서 요소를 초기화하는 것이 좋은 습관입니까?

foreach ($item as $key=>$value) { 
    if ($arr[$key] == null) { 
     $arr[$key] = 0; 
    } 
    $arr[$key] += $other_arr[$value]; 
} 

그러나 나는 그것을 0과 동일하게 취급되는 널 (null)입니다 아마도 때문에, $ 편곡 [$ 키를] 초기화 라인을 제외하면 잘 작동 것을 깨달았다 :

나는이 일을했다

php에서 이러한 종류의 가정을 안전하게 지키고 있습니까? 안전하다면 좋은 생각입니까?

답변

7

안전하지만 반대하는 것이 좋습니다. 오류보고를 E_NOTICES까지 올리면 코드가 많이 생성되어 실제 오류 (예 : 잘못 입력 된 변수 이름)가 마스킹됩니다.

당신이 정말 일을해야하는 것은 :이 통지를 인상하지 않을 것이다

if (!isset($arr[$key])) 
    $arr[$key] = 0; 

(그러나 잘못 형하지는 isset 내부 $의 편곡을 매우 조심해야()).

0

이제 다음과 같은 작업을 수행 할 수 php 7 현재 :

foreach ($item as $key=>$value) { 
    $arr[$key] = ($arr[$key] ?? 0) + other_arr[$value]; 
} 
관련 문제