我是一名PHP新手,我在代码库中获得了两个通知,你可以帮我解决这个问题吗?通知是
注意:未定义的偏移量:在第408行的/home/raj/public_html/viewgallery.php中为3 注意:未定义的偏移量:第426行/home/raj/public_html/viewgallery.php中的3
第408行
'pcaption' => $caption_array[$next]);
第426行是
$result_final.= '<div class="limage"><table><tr><td><table class="image"><tr><td><a href="photos/'.$cname.'/'.$caption_array[$next].'/'.$q.'/"><img src="' . $images_dir . '/' . $photo_filename . '" alt=" ' . $photo_keywords . '"></a><div class="caption">' . $photo_caption . '</div><div class="excerpt">' . $photo_description . '</div></td></tr></table></td></tr></table><div class="underline"></div></div>'.$backString.'</div>';
上述行是此代码的一部分......
$next = 0;
$prev = 0;
if ($ct > 1)
{
$key = array_search($pcaption, $caption_array);
$prev = $key - 1;
if ($prev < 0) $prev = $ct - 1;
$next = $key + 1;
$searchNext = $key + 1;
if ($next == $ct) $next = 0;
$total_count = count($caption_array);
$result_final.= "<div id='prevnext'>";
$parameters_next = array(
'cname' => $cname,
'pcaption' => $caption_array[$next]
);
$parameters_prev = array(
'cname' => $cname,
'pcaption' => $caption_array[$prev]
);
$categoryNamePrev = $cname;
$photoCaptionNext = $caption_array[$next];
$photoCaptionPrev = $caption_array[$prev];
if($q !='' && $searchNext==$ct ) {
$previousUrl = 'photos/'.$categoryNamePrev.'/'.$photoCaptionPrev.'/'.$q.'/';
$nextUrl = '/searchmyway.php?q='.$q.'&form_id%3Asearch=1';
} else {
if($q != '') {
$previousUrl = 'photos/'.$categoryNamePrev.'/'.$photoCaptionPrev.'/'.$q.'/';
$nextUrl = 'photos/'.$categoryNamePrev.'/'.$photoCaptionNext.'/'.$q.'/';
} else {
$previousUrl = 'photos/'.$categoryNamePrev.'/'.$photoCaptionPrev.'/';
$nextUrl = 'photos/'.$categoryNamePrev.'/'.$photoCaptionNext.'/';
}
}
$result_final.= '<span class="prev"><a href="'.$previousUrl.'"><img src="/photos/assets/left.png" alt="left navigation"></a></span>';
$result_final.= '<span class="next"><a href="'.$nextUrl.'"><img src="/photos/assets/right.png" alt="right navigation"></a></span>';
$result_final.= "</div>";
}
}
$key = array_search($pcaption, $caption_array);
$prev = $key - 1;
if ($prev < 0) $prev = $ct - 1;
$next = $key + 1;
$searchNext = $key + 1;
$parameters_next = array(
'cname' => $cname,
'pcaption' => $caption_array[$next]
);
$parameters_prev = array(
'cname' => $cname,
'pcaption' => $caption_array[$prev]
);
if($q != '') {
$backString = '<a href="/searchmyway.php?q='.$q.'&form_id%3Asearch=1">Back</a>';
} else {
$backString = '';
}
if($q == '') {
$result_final.= '<div class="limage"><table><tr><td><table class="image"><tr><td><a href="photos/'.$cname.'/'.$caption_array[$next].'/"><img src="' . $images_dir . '/' . $photo_filename . '" alt=" ' . $photo_keywords . '"></a><div class="caption">' . $photo_caption . '</div><div class="excerpt">' . $photo_description . '</div></td></tr></table></td></tr></table><div class="underline"></div></div>'.$backString.'</div>';
} else {
$result_final.= '<div class="limage"><table><tr><td><table class="image"><tr><td><a href="photos/'.$cname.'/'.$caption_array[$next].'/'.$q.'/"><img src="' . $images_dir . '/' . $photo_filename . '" alt=" ' . $photo_keywords . '"></a><div class="caption">' . $photo_caption . '</div><div class="excerpt">' . $photo_description . '</div></td></tr></table></td></tr></table><div class="underline"></div></div>'.$backString.'</div>';
}
答案 0 :(得分:1)
基本上,当您找到的元素位于最后一个元素中时,&#34; next&#34;元素不存在,当你尝试使用它时,它会给你通知。
至少,这是我从您的代码中理解的内容。
也许是:
if($next<$total_count)
会有帮助吗?
答案 1 :(得分:0)
谢谢你们帮助我。我通过初始化变量和数组解决了这个问题,$caption_array[$next]=array();
没有更多的通知。再次感谢..