테스트 사이트 - 개발 중인 베타 버전입니다

Notice: Undefined offset: 1 in ... 에러 해결법? 채택완료

sinbi 6년 전 조회 7,091

for ($i=0; $row=$mw5_menu[$i]; ++$i)

 

코드에서

 

Notice: Undefined offset: 1 in ~~ 에러 발생하는데...

어떻게 해야 이게 안 나타날까요?

몇 시간 검색해봤는데, 도저히 모르겠네용. ㅜㅜ

 

PHP7.2.10 에서 발생하는 에러입니다.

 

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

채택된 답변
+20 포인트
잉끼s
6년 전

foreach($mw5_menu as $i=>$row)

이렇게 해보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
sinbi
6년 전
이렇게 하니까, 해당 에러는 사라졌는데,
메뉴 옆에 이 메뉴도 나타나네요.

메뉴 준비 중입니다.관리자모드 > 환경설정 > 메뉴설정에서 설정하실 수 있습니다.

댓글을 작성하려면 로그인이 필요합니다.

s
sinbi Expert
6년 전

해결책을 찾았네용. ㅎ

 

1단,

for ($i=0; $row=(isset($mw5_menu[$i]))?$mw5_menu[$i]:0;  ++$i) // 홈짱

 

2단,

for ($j=0; $row2=(isset($mw5_menu[$i]['sub'][$j]))?$mw5_menu[$i]['sub'][$j]:0 ; ++$j) { // 홈짱

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

kam
6년 전

error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING)

이걸로 NOTICE, WARNING 메세지를 감춰면 안되겠져 ^^

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
sinbi
6년 전
엡. ^^ 감춰졌던 걸 들춰내서 고치는 중이라...ㅎ

댓글을 작성하려면 로그인이 필요합니다.

for ($i=0; $row=$mw5_menu[$i]; ++$i)

반복문 for 구문은 $row = $mw5_menu[$i]; 이부분을

> >= < <= 등등의 부등호 등호와 같은 녀석들이 들어가야 합니다.

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

s
sinbi
6년 전
부등호를 넣으니까 치명적인 에러가 발생해용. ^^;
불량학생™
6년 전
$mw5_menu[$i]; 이곳의 i를 다르게 바꾸셔야죠
s
sinbi
6년 전
다르게 바꾼다는 의미가 뭔지 궁금합니다.
반복문 구조가 0부터 시작해서 메뉴테이블의 메뉴개수만큼 반복되게 하는 소스 같거든요.
ps.
배추빌더5 head.php에 있는 코드입니다.
불량학생™
6년 전
$mw5_menu[$i] 이부분에서 현재의 자기 자신을 넣어버리면 오류가 생기죠
다른 변수 한개로 카운트를 해야 한다는 말이죠
s
sinbi
6년 전
아직 내공이 부족해 말씀하신 내용을 이해할 수가..^^;;
$m = count($mw5_menu[$i]);
이런 식 말씀하시는 건가요?

댓글을 작성하려면 로그인이 필요합니다.

6년 전

for 코드가 for($i=0; $i<10; $i++)

보통 이렇잖아요...

그런데 $i 자리에 $row 가 들어와서 그런거 같네요.

위 처럼 사용하시려면 for 대신 while 이나 foreach 로 변환해 주는게 더 좋지 않을까 싶습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
sinbi
6년 전
배추5 코드라 되도록이면 원본을 유지한 형태였으면 해서요.
에러 비출력시키면 되는데, 깨끗하게 처리하는 방법이 있나 해서..^^;

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인