为什么我从作为参数传递的数组中得到“注意:未定义的偏移量”?

问题描述

在这里做错了什么导致我收到这条消息?

function numbered_array( $array ) {    
    for ( $i = 0; $i < count( $array ); $i++ ) {
        echo $i . ": ";
        echo $array[$i] . "<br/>\n";
    }
}

我只在函数内部遇到这个问题。当我自己使用相同的代码时,例如

for ( $i = 0; $i < count( $my_array ); $i++ ) {
    echo $i . ": ";
    echo $my_array[$i] . "<br/>\n";
}

效果很好。

对于将数组作为参数传递给的任何函数,我似乎都遇到了这个问题。

(作为参考,我正在使用字符串值的一维数组)

解决方法

这是您问题的解决方案。

function numbered_array(array $array)
{
    foreach ($array as $key => $value) {
        echo $key . ": ";
        echo $value . "<br/>\n";
    }
}

$array = array("test","test",);

numbered_array($array);

输出

0: test<br/>
1: test<br/>
2: test<br/>
3: test<br/>