为什么以下代码返回数组值的第二个字符?
$name = array("John","Frank","Peter");
function myFunction($name) {
echo $name[1];
}
array_walk($name,"myFunction"); //output ore
答案 0 :(得分:3)
array_walk()
将$name
数组的每个值传递给您的回调myFunction()
。 (回调中的变量$name
不与您传递给$name
的变量array_walk()
。$name
数组是({在这种情况下假设)全局范围,而回调中的$ name`仅在该函数内的范围内)。然后,您将显式地回显出该变量字符串值的第二个字符。
来自the manual:
可以通过使用方形数组括号在字符串后面指定所需字符的从零开始的偏移来访问和修改字符串中的字符,如$ str [42]。将字符串视为用于此目的的字符数组。
// First iteration
John
^
// Second iteration
Frank
^
// Third iteration
Peter
^