所以我试图通过在函数modArr中添加键和值来修改数组;我希望var转储显示添加的项目,但我得到NULL.我在这里错过了什么一步?
<?PHP $arr1 = array(); modArr($arr1); $arr1['test'] = 'test'; var_dump($arr); function modArr($arr){ $arr['item1'] = "value1"; $arr['item2'] = "value2"; return; }
您正在修改函数范围中存在的数组,而不是全局范围.您需要从函数返回修改后的数组,使用global关键字(不推荐)或通过引用将数组传递给函数而不是值.
原文链接:https://www.f2er.com/php/134690.html// 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.