我得到未定义的偏移错误PHP

时间:2015-03-23 05:24:24

标签: php

我正在尝试将从数据库中提取的内容拆分为图像旁边的几个字以及下一段中的剩余内容

我收到未定义的偏移量错误:41

以下是代码...它正确执行,但上面有通知错误...你能帮我解决一下吗。

<div class="contentfont" style="padding-left:20px; text-align:left;">
<?php 

$words = explode(" ",$dcontent);
$cntWords = count($words); 
$splitWords = round($cntWords/2);

for ($i=0;$i<=$splitWords;$i++)
{
print $words[$i].' ';
$halfPoint = $i;
}
?>

<p class="contentfont" style="padding-top:10px;">
<?php 
for ($i=$halfPoint;$i<=$cntWords;$i++) 
{
print $words[$i].' ';// This print statement is causing me this error     Notice: Undefined offset: 41 in D:\xampp\htdocs\training\admin-panel\php\sai_devotees_detail.php on line 106
}
?>
</p>

1 个答案:

答案 0 :(得分:0)

在这种情况下,未定义的偏移意味着您正在读取超过$ words数组的长度。尝试使用$ cntWords - 1作为循环的上限,如下所示:

for ($i = $halfway; $i <= $cntWords -1; $i++) {

$ halfPoint = $ i;也在循环之外。试试这个:

for ($i = 0; $i <= $splitWords; $i++) {
    print $words[$i] . ' ';
    $halfPoint = $i;
}

当你在没有括号的PHP中进行循环时,只会执行它后面的第一个语句。所以在这种情况下,$ i不存在,你将它分配给$ halfPoint。不要认为将所有内容压缩成一行是很聪明的。这只会给你带来麻烦。