문제

나는 PHP의 연관 배열과 많은 일을하고 있습니다.

나는 이것을하고 있었다 :

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

그러나 $ ARR [$ key]를 초기화하는 줄을 제외하면 0과 동일하게 취급되는 NULL이기 때문에 잘 작동한다는 것을 깨달았습니다.

PHP에서 그런 가정을 안전하게 만드는가? 그리고 안전하다면 좋은 생각입니까?

도움이 되었습니까?

해결책

안전하지만 나는 그것을 추천합니다. 오류를 E_NOTICE까지 올리면 코드가 많이 생성되어 실제 오류 (예 : 안개화 된 변수 이름)를 마스킹하는 것을 볼 수 있습니다.

당신이 정말로해야 할 일은 다음과 같습니다.

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

이것은 통지를 제기하지는 않지만 (isset () 내부에서 $ arr를 잘못 사용하지 않도록주의하십시오).

다른 팁

현재 php 7 이제 다음을 수행 할 수 있습니다.

foreach ($item as $key=>$value) {
    $arr[$key] = ($arr[$key] ?? 0) + other_arr[$value];
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top