5

我有这个 php 函数,它必须对给定的数组执行一些处理:

processArray($arrayToProcess) {

  $arrayToProcess['helloStackOverflow'] = TRUE;
}

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

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

键 'helloStackOverflow' 在 processArray 函数之外不可用。我尝试调用以下内容:

processArray(&$niceArray);

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

不推荐使用的功能:不推荐使用调用时传递引用;如果您想通过引用传递它,请修改 populateForm_withTextfields() 的声明

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

我该怎么做?

4

3 回答 3

16

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

function processArray(&$arrayToProcess) {
于 2012-05-07T13:39:44.747 回答
8
processArray(&$arrayToProcess) {

  $arrayToProcess['helloStackOverflow'] = TRUE;
}

以 PHP 方式实现引用。

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

于 2012-05-07T13:39:07.120 回答
5
processArray(&$arrayToProcess) {

  $arrayToProcess['helloStackOverflow'] = TRUE;
}

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

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

获取完整文档。

于 2012-05-07T13:38:55.170 回答