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)
processArray(&$arrayToProcess) {
$arrayToProcess['helloStackOverflow'] = TRUE;
}
Run Code Online (Sandbox Code Playgroud)
以PHP方式实现引用.
有关参考的有用信息,请参见http://fi2.php.net/references.
processArray(&$arrayToProcess) {
$arrayToProcess['helloStackOverflow'] = TRUE;
}
Run Code Online (Sandbox Code Playgroud)
现在引用传递发生在函数声明中,而不是在调用函数时.
http://php.net/manual/en/language.references.pass.php
完整的文档.