이 오류는 어떻게 잡으면 될까요?

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
이 오류는 어떻게 잡으면 될까요?

QA

이 오류는 어떻게 잡으면 될까요?

본문

로고를 보니 같은 오류가 주르륵 나열되어 있네요.

오류 내용은

 


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인 경우도 있으므로 그 경우도 처리해야 합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 1
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT