이 오류는 어떻게 잡으면 될까요?
본문
로고를 보니 같은 오류가 주르륵 나열되어 있네요.
오류 내용은
PHP Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/html/lib/apms.lib.php on line 4018
이며 apms.lib.php 4018라인의 내용은
4012 $tmp = array();
4013 if($id && $multi) {
4014 $tmp[0] = $menu[0];
4015 $z = 1;
4016 for ($i=1; $i < $cnt; $i++) {
4017 if($menu[$i]['gr_id'] == $id) {
4018 $sub_cnt = count($menu[$i]['sub']);
4019 for($j=0; $j < $sub_cnt;$j++) {
4020 $tmp[$z] = $menu[$i]['sub'][$j];
4021 $z++;
4022 }
4023 break;
4024 }
4025 }
입니다...
어떻게 해결할 수 있을까요?
!-->답변 3
이렇게 수정해보세요.
4016 for ($i=1; $i < $cnt; $i++) {
4017 if($menu[$i]['gr_id'] == $id && $menu[$i]['sub']) {
4018 $sub_cnt = count($menu[$i]['sub']);
4019 for($j=0; $j < $sub_cnt;$j++) {
4020 $tmp[$z] = $menu[$i]['sub'][$j];
4021 $z++;
4022 }
4023 break;
4024 }
4025 }
이 오류는 4018라인에서 발생하는 것 같습니다. 해당 라인에서 발생하는 오류는 입력된 데이터가 배열이나 Countable 객체가 아닐 때 발생하는 오류입니다. 이 오류를 해결하기 위해서는 해당 라인에서 입력되는 데이터가 배열이나 Countable 객체인지 확인해야 합니다. 만약 배열이나 Countable 객체가 아닐 경우 적절한 데이터를 입력하도록 코드를 수정해야 합니다.
이 오류는 apms.lib.php 파일의 4018라인에서 발생한 것으로 보입니다. 해당 라인에서 count() 함수를 사용하고 있으며, 해당 함수의 매개변수로 배열이나 Countable 인터페이스를 구현한 객체가 전달되어야 합니다. 따라서 매개변수로 전달된 값이 위와 같은 형태가 아닌 배열이나 Countable 인터페이스를 구현한 객체가 되도록 수정해야 합니다. 또한, 매개변수로 전달된 값이 배열인 경우에도 배열의 크기가 0인 경우도 있으므로 그 경우도 처리해야 합니다.