首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >php:无法修改函数中的数组?

php:无法修改函数中的数组?
EN

Stack Overflow用户
提问于 2011-12-08 14:33:31
回答 2查看 9.4K关注 0票数 8

因此,我试图通过在函数modArr中添加键和值来修改数组;我希望var转储显示添加的项,但得到的结果为NULL。我在这里遗漏了什么步骤?

代码语言:javascript
运行
复制
<?php

$arr1 = array();

modArr($arr1);
$arr1['test'] = 'test';
var_dump($arr);

function modArr($arr) {
    $arr['item1'] = "value1";
    $arr['item2'] = "value2";
    return;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-08 14:36:33

您正在修改数组,因为它存在于函数作用域,而不是全局作用域。您需要从函数返回修改后的数组,使用global关键字(不推荐),或者通过引用而不是值将数组传递给函数。

代码语言:javascript
运行
复制
// 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

票数 17
EN

Stack Overflow用户

发布于 2011-12-08 14:34:50

您必须通过引用传递$arrfunction modArr(&$arr)

编辑:注意到您的代码中有一个错误:您正在传递modArr($arr1);,但试图输出$arr

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8427119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档