php Undefined Offset в простой функции () - PullRequest
4 голосов
/ 14 июля 2011

Я не уверен, почему я получаю Неопределенное уведомление о смещении на это:

<?php 

$numbers = array('1','2','3');
$total = 0;

for($i=0;$i<=sizeof($numbers); $i++) {
    $total += $numbers[$i];
    echo $total;
}

?>

Вывод:

136 Уведомление: Неопределенное смещение: 3 в E: \ php \ arrays \ array_1.php в строке 17 6

Ответы [ 4 ]

7 голосов
/ 14 июля 2011

Ваш массив имеет три элемента с индексами 0, 1 и 2. Нет элемента с индексом 3.

Ваш цикл должен остановиться до того, как он достигнет этого ...

for($i=0;$i<sizeof($numbers); $i++) {
}

Кроме того, извлеките массив_сум , что в любом случае может быть тем, что вы хотите ...

$total=array_sum($numbers);
1 голос
/ 14 июля 2011

Вы должны выполнить цикл до < размера массива, а не <=.

for($i=0;$i<sizeof($numbers); $i++) {
0 голосов
/ 23 декабря 2012

ошибки отключения HTML

error_reporting(E_ALL);
ini_set('display_errors', 'On');
ini_set('html_errors', 'Off'); 
0 голосов
/ 14 июля 2011

Измените ваше состояние с <= на <.

Это добавит правильно:

$total += intval($numbers[$i]);
...