php代码出错,显示错误Undefined Offset

时间:2015-02-06 07:06:51

标签: php

这行代码一直让我得到未定义的偏移量:第9行。我不知道它有什么问题,代码运行顺利但是这部分代码让我得到了未定义的偏移。我相信它与$ i的东西

for( $i = 0; $lines[$i]; $i++ ) /** LINE 9 **/
{
if( $_POST['Aut'] == rtrim($lines[$i]) )
{
    fwrite($file, $_POST['addition']."\n\t");
    fwrite($file, $_POST['Aut'].PHP_EOL);

}
else
{
    fwrite($fd,$lines[$i]);
}

5 个答案:

答案 0 :(得分:0)

for( $i = 0; $lines[$i]; $i++ )

循环什么时候结束?一次迭代太晚了。它必须是

for( $i = 0; $i<count($lines); $i++ )
             ^

<强> For Loop Syntax

答案 1 :(得分:0)

尝试 -

foreach($lines as $line) /** LINE 9 **/
{

    if( $_POST['Aut'] == rtrim($line) )
    {
        fwrite($file, $_POST['addition']."\n\t");
        fwrite($file, $_POST['Aut'].PHP_EOL);

    }
    else
    {
        fwrite($fd,$line);
    }
}

答案 2 :(得分:0)

for( $i = 0; **$lines[$i]**; $i++ )

for 循环的第二步应该是这里缺少的条件

答案 3 :(得分:0)

在for循环中使用之前,应该定义$ lines数组。

$lines[] = array(1,2,3,4,5);
for( $i = 0; $lines[$i]; $i++ ) /** LINE 9 **/
{
 print 'hai'; print PHP_EOL;
}

这里,&#34; hai&#34;将从$ lines [0]到$ lines [4]打印5次。然后它将返回相同的错误,因为$ lines [5]

上没有数据

答案 4 :(得分:0)

你可以简单地将foreach用于此目的

foreach($lines as $key=>$line)
{
 /* your code here */

}

如果你想用for循环试试这个

for( $i = 0; $i<count($lines); $i++ ) /** LINE 9 **/
{
if( $_POST['Aut'] == rtrim($lines[$i]) )
{
    fwrite($file, $_POST['addition']."\n\t");
    fwrite($file, $_POST['Aut'].PHP_EOL);

}
else
{
    fwrite($fd,$lines[$i]);
}