【问题标题】:Notice: Undefined offset: 3 in line注意:未定义的偏移量:3行
【发布时间】:2014-11-28 23:03:41
【问题描述】:

我是一名 PHP 新手,我收到了两条关于属于画廊一部分的代码的通知,你能帮我解决这个问题吗?通知是

注意:未定义的偏移量:/home/raj/public_html/viewgallery.php 第 408 行中的 3
注意:未定义的偏移量:/home/raj/public_html/viewgallery.php 第 426 行中的 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>';
}

【问题讨论】:

  • $caption_array 没有索引为 3 的元素
  • 谢谢 Cheery,但你能再解释一下吗?抱歉,我对此很陌生。
  • 您的 $next 变量等于 3,并且您将其用作 $caption_array[$next] 中的键/索引,但数组 $caption_array 没有索引 = 3 的元素。这就是为什么 php抛出此通知,您正在尝试获取数组不存在元素的值。

标签: php


【解决方案1】:

基本上,当您找到的元素在最后一个元素中时,“下一个”元素不存在,当您尝试使用它时,它会给您提示。

至少,我从你的代码中是这样理解的。

也许是:

if($next<$total_count)

会有帮助吗?

【讨论】:

    【解决方案2】:

    谢谢你们帮助我。我通过初始化变量和数组解决了这个问题,$caption_array[$next]=array(); 没有更多的通知。再次感谢..

    【讨论】:

      猜你喜欢
      • 2015-08-01
      • 1970-01-01
      • 2023-03-27
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多