【问题标题】:Unable to add to array from function using arguments无法使用参数从函数添加到数组
【发布时间】:2013-05-09 06:19:15
【问题描述】:

我有一个函数getPrice($_SESSION['external']);

function getPrice($position)
    {
        //Here I perform SQL functions using $position['arraykey']
        //This works

        //Here I want to add to the array
        //This doesn't work
        $position[0]['pricing'] = $sql_result;
    }

当我使用 $position 时,它不会添加到数组中,但是当我使用 $_SESSION['external'] 时,它可以正常工作。

我不知道为什么$position 在我的函数的 SQL 查询部分中起作用,但是当我尝试将结果添加到数组时,下面一行却不起作用。

【问题讨论】:

  • 您能描述一下您所说的 it doesn't 是什么意思吗?有没有调试过?
  • @Rikesh 使用 $position[0]['pricing'] 添加到我的数组不起作用。使用 $_SESSION['external']['pricing'] 可以。
  • 你能创建一个pastebin 的代码 sn-p 吗?
  • 尝试使用 $position['pricing'],否则请更具体地了解您的数组内容..
  • 您需要返回结果数组。

标签: php arrays function


【解决方案1】:

你必须通过引用传递 $position 变量 如下:

function getPrice(&$position)
    {
        //Here I perform SQL functions using $position['arraykey']
        //This works

        //Here I want to add to the array
        //This doesn't work
        $position[0]['pricing'] = $sql_result;
    }

【讨论】:

  • 啊,是的!非常感谢,不知道通过引用传递。完美运行。
  • @MichaelN 顺便说一句,不建议修改你的函数参数;考虑返回修改后的变量。
  • @Jack 为什么不推荐它?我也会考虑返回。谢谢。
  • @MichaelN 1. 因为函数名称和 2. 因为不可变设计通常更利于稳定性。
  • @Jack & @Michael N:是的,从函数返回而不是修改函数参数是更好的方法。
猜你喜欢
  • 2015-11-25
  • 2016-08-18
  • 2016-02-10
  • 1970-01-01
  • 2017-12-06
  • 2013-06-06
  • 2018-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多