注意:未定义的偏移量:2

时间:2013-03-27 06:36:05

标签: php arrays

我是php的新手,我在php书中做了一个例子。在那里,我得到notice以下。如何防止这个通知?

<?php
require_once('AddingMachine.php');
$arrayofnumbers = array(100,200);
$objectname = new AddingMachine();
$objectname->addNumbers($arrayofnumbers);
?>

<?php
Class AddingMachine
{
private $total = 0;
function addNumbers(array $numbers)
{{
for($i=0;$i<=sizeof($numbers);$i++)
{
    $this->total = $this->total + $numbers[$i];
}
   echo $this->total;
 }
}
}

2 个答案:

答案 0 :(得分:2)

更改循环
for($i=0; $i <= sizeof($numbers); $i++)

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

也最好使用count

for($i=0; $i < count($numbers); $i++)

答案 1 :(得分:1)

问题在于<= sizeof($numbers)(等于count($numbers)。它将为您提供数组元素的总数,它总是比最大​​索引多一个,因为数组开始计数0

只需将<=替换为<,您就可以了。