PHP:通过引用函数传递的数组?

时间:2012-05-07 13:36:48

标签: php arrays function parameter-passing pass-by-reference

我有这个PHP函数,必须在给定的数组上执行一些处理:

processArray($arrayToProcess) {

  $arrayToProcess['helloStackOverflow'] = TRUE;
}

稍后,代码将调用以下内容:

$niceArray = array('key' => 'value');
processArray($niceArray);

关键'helloStackOverflow'在processArray函数之外不可用。我试着打电话给以下人员:

processArray(&$niceArray);

使用“&”有帮助,但它会引发一些警告:

  

弃用功能:已弃用呼叫时间传递引用;如果您想通过引用传递它,请修改populateForm_withTextfields()的声明

试过&在那里,但这只是停止代码。

我该怎么做?

3 个答案:

答案 0 :(得分:12)

您必须在函数中定义引用,而不是在对函数的调用中定义引用。

function processArray(&$arrayToProcess) {

答案 1 :(得分:8)

processArray(&$arrayToProcess) {

  $arrayToProcess['helloStackOverflow'] = TRUE;
}

以PHP方式实现引用。

有关参考文献的有用信息,请参阅http://fi2.php.net/references

答案 2 :(得分:5)

processArray(&$arrayToProcess) {

  $arrayToProcess['helloStackOverflow'] = TRUE;
}

现在引用传递发生在函数声明中,而不是在调用函数时。

http://php.net/manual/en/language.references.pass.php

获取完整文档。