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

Jem*_*Jem 3 php arrays function parameter-passing pass-by-reference

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

processArray($arrayToProcess) {

  $arrayToProcess['helloStackOverflow'] = TRUE;
}
Run Code Online (Sandbox Code Playgroud)

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

$niceArray = array('key' => 'value');
processArray($niceArray);
Run Code Online (Sandbox Code Playgroud)

在processArray函数之外,"helloStackOverflow"键不可用.我试着调用以下内容:

processArray(&$niceArray);
Run Code Online (Sandbox Code Playgroud)

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

不推荐使用的功能:不推荐使用Call-time pass-by-reference; 如果您想通过引用传递它,请修改populateForm_withTextfields()的声明

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

我该怎么做?

xCa*_*der 12

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

function processArray(&$arrayToProcess) {
Run Code Online (Sandbox Code Playgroud)


Sma*_*mar 8

processArray(&$arrayToProcess) {

  $arrayToProcess['helloStackOverflow'] = TRUE;
}
Run Code Online (Sandbox Code Playgroud)

以PHP方式实现引用.

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


dm0*_*514 5

processArray(&$arrayToProcess) {

  $arrayToProcess['helloStackOverflow'] = TRUE;
}
Run Code Online (Sandbox Code Playgroud)

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

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

完整的文档.