2015-02-06 93 views
-2

這行代碼讓我不明確偏移量:在第9行。我不知道它有什麼問題,代碼運行平穩,但代碼的這部分讓我未定義偏移量。我相信它的東西與$ IPHP代碼錯誤,顯示錯誤未定義偏移

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]); 
} 
+2

'$ lines [$ i]'really?這是for循環的條件? '$ lines'中的內容顯示了print_r()調用的輸出 – Rizier123 2015-02-06 07:08:04

+0

必須有 - > for($ i = 0; $ i <= $ lines [$ i]; $ i ++) – TBI 2015-02-06 07:09:09

回答

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

什麼時候循環結束?一次迭代太遲。它必須是

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

For Loop Syntax

+0

不必是這樣的,也許OP在數組中有一個假值:'$ lines = array(1,2,3,4,false,5);' – Rizier123 2015-02-06 07:10:37

+0

不是。如果循環永不結束,它將超出範圍快 – 2015-02-06 07:11:04

+0

它結束,如果他在數組中有一個假值 – Rizier123 2015-02-06 07:12:19

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); 
    } 
} 
+0

在其他還有'$行[$我]' – Last1Here 2015-02-06 07:11:49

+1

感謝您指出。 – 2015-02-06 07:17:22

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

第二步應該是條件這是在這裏失去了

+0

技術這是一個條件,變量可以是真實的或虛假的或類似的東西 – Rizier123 2015-02-06 07:11:28

+0

是..agree ..我想顯示錯誤的代碼..錯誤的話..謝謝 – 2015-02-06 07:13:20

0

您應該在for循環中使用之前定義$ lines數組。

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

在這裏,「hai」會從$ lines [0]到$ lines [4]打印5次。而接下來它會返回相同的錯誤,因爲在$行沒有數據[5]

0

,如果你想爲做到這一點,你可以簡單地使用foreach用於此目的

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

} 

循環嘗試這一個

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]); 
} 
+0

yaaa sory ..我錯了。 – john 2015-02-06 07:34:53