PHP函数错误:注意:未定义的偏移量

时间:2016-04-10 13:20:31

标签: php function undefined

我有简单的功能,但收到错误消息:注意:未定义的偏移量:3 in

我检查了问题是否符合:$ newValue + = $ value [$ i];

以下功能的答案是“6”,但仍然显示错误信息。

<?php
function countMe($value) {

    $newValue = 0;

    for ($i=0; $i<=count($value); $i++) 
    {
        $newValue += $value[$i];
    }   
    return $newValue;
}   

$value[0] = 1;
$value[1] = 2;
$value[2] = 3;

echo countMe($value);
?>

我知道解决方案只是使用@countMe($ value)等@运算符来抑制错误但是我想知道这个函数有什么问题?任何帮助,将不胜感激。感谢

2 个答案:

答案 0 :(得分:2)

索引从0到2 ......您的函数应该计为count() - 1

 for ($i=0; $i<=count($value)-1; $i++)

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

顺便说一句......只需使用array_sum($value)来获得相同的结果:)

答案 1 :(得分:1)

请注意count($ value)的值是3。

当你在循环中提及&lt; =时,它试图访问$ value [3]但是没有这样的索引可用。

您只需将其更改为&lt;。

即可

另一种方法是使用foreach代替。这提供了更大的灵活性。

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

OR

foreach ($value as $v) {
   $newValue += $v;
}

希望这有帮助。