因此,我试图通过在函数modArr中添加键和值来修改数组;我希望var转储显示添加的项,但得到的结果为NULL。我在这里遗漏了什么步骤?
<?php
$arr1 = array();
modArr($arr1);
$arr1['test'] = 'test';
var_dump($arr);
function modArr($arr) {
$arr['item1'] = "value1";
$arr['item2'] = "value2";
return;
}发布于 2011-12-08 14:36:33
您正在修改数组,因为它存在于函数作用域,而不是全局作用域。您需要从函数返回修改后的数组,使用global关键字(不推荐),或者通过引用而不是值将数组传递给函数。
// pass $arr by reference
$arr = array();
function modArr(&$arr) {
// do stuff
}
// use global keyword
$arr = array();
function modArr($arr) {
global $arr;
//...
}
// return array from function
$arr = array();
function modArr($arr) {
// do stuff to $arr
return $arr;
}
$arr = modArr($arr);要了解有关变量作用域的更多信息,请查看PHP docs on the subject。
发布于 2011-12-08 14:34:50
您必须通过引用传递$arr:function modArr(&$arr)
编辑:注意到您的代码中有一个错误:您正在传递modArr($arr1);,但试图输出$arr
https://stackoverflow.com/questions/8427119
复制相似问题