【问题标题】:PHP: Array passed by reference to a function?PHP:通过引用传递给函数的数组?
【发布时间】:2012-05-16 00:28:05
【问题描述】:

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

processArray($arrayToProcess) {

  $arrayToProcess['helloStackOverflow'] = TRUE;
}

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

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

“helloStackOverflow”键在 processArray 函数之外不可用。我尝试调用以下命令:

processArray(&$niceArray);

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

弃用函数:调用时传递引用已弃用;如果你想通过引用传递,修改populateForm_withTextfields()的声明

尝试了其中的 &,但这只是停止了代码。

我应该怎么做?

【问题讨论】:

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


    【解决方案1】:
    processArray(&$arrayToProcess) {
    
      $arrayToProcess['helloStackOverflow'] = TRUE;
    }
    

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

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

    获取完整文档。

    【讨论】:

      【解决方案2】:
      processArray(&$arrayToProcess) {
      
        $arrayToProcess['helloStackOverflow'] = TRUE;
      }
      

      以 PHP 方式实现引用。

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

      【讨论】:

        【解决方案3】:

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

        function processArray(&$arrayToProcess) {
        

        【讨论】:

          猜你喜欢
          • 2012-03-06
          • 2012-08-05
          • 2017-06-02
          • 1970-01-01
          • 2015-07-04
          • 2011-05-24
          • 2020-10-02
          • 2014-12-03
          • 1970-01-01
          相关资源
          最近更新 更多