Php 为什么数组_walk()函数的结果如此疯狂?

Php 为什么数组_walk()函数的结果如此疯狂?,php,arrays,function,Php,Arrays,Function,为什么下面的代码返回数组值的第二个字符 $name = array("John","Frank","Peter"); function myFunction($name) { echo $name[1]; } array_walk($name,"myFunction"); //output ore array\u walk()将$name数组的每个值传递给回调函数myFunction()。(回调中的变量$name与传递给array\u walk()的变量$name不同。$name数组(在本例中

为什么下面的代码返回数组值的第二个字符

$name = array("John","Frank","Peter");
function myFunction($name) {
echo $name[1];
}
array_walk($name,"myFunction"); //output ore
array\u walk()
$name
数组的每个值传递给回调函数
myFunction()
。(回调中的变量
$name
与传递给
array\u walk()
的变量
$name
不同。
$name
数组(在本例中假定)在作用域中是全局的,而回调中的$name`仅在该函数的作用域中)。然后显式回显该变量字符串值的第二个字符

发件人:

可以通过使用方括号指定字符串后所需字符的零基偏移量来访问和修改字符串中的字符,如$str[42]。为此,请将字符串视为字符数组


你期待什么?为什么?还有,你为什么要责怪数组?你认为它为什么会这样做?您希望它做什么?您可能需要解释变量
$name
的范围。“这可能会引起混乱。”克劳斯比斯科夫彼得森:好主意。完成了。谢谢约翰的全面解释
// First iteration
John
 ^

// Second iteration
Frank
 ^

// Third iteration
Peter
 ^