PHP의 연관 배열에서 요소를 초기화하는 것이 좋습니다.
-
08-07-2019 - |
문제
나는 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];
}
제휴하지 않습니다 StackOverflow