채택완료

Notice: Undefined offset: 1 in ... 에러 해결법?

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

코드에서

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

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

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

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

|

답변 5개 / 댓글 8개

채택된 답변
+20 포인트

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

이렇게 해보세요.

답변에 대한 댓글 1개

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

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

해결책을 찾았네용. ㅎ

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) { // 홈짱

error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING)

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

답변에 대한 댓글 1개

엡. ^^ 감춰졌던 걸 들춰내서 고치는 중이라...ㅎ
2019-01-25 (금) 09:16:21

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

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

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

답변에 대한 댓글 5개

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

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

보통 이렇잖아요...

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

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

답변에 대한 댓글 1개

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

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