【问题标题】:PHP - Does an index of an array variable that is reference also a reference?PHP - 引用的数组变量的索引是否也是引用?
【发布时间】:2012-07-02 11:03:45
【问题描述】:
$cars = array(
     array('name' => 'Toyota', price => 10000, ...),
     array('name' => 'Ford', price => 20000, ...),
     ...
);

foreach($cars as &$car)
{
   do_something($car['name']);
}
unset($car);

function do_something($name)
{
    ....
}

在 do_something() 函数中,$name 是引用还是值?如果是引用,我如何在循环中检索值并将其传递给函数?

【问题讨论】:

    标签: php pass-by-reference


    【解决方案1】:

    不,do_something()函数中的$name不是引用,不是通过引用传递,只是将$car['name']的值传递给$name

    如果你想通过引用传递,你可以像下面这样,传递$car作为引用。

    $cars = array(
         array('name' => 'Toyota', price => 10000),
         array('name' => 'Ford', price => 20000)
    );
    
    foreach($cars as &$car)
    {
       do_something($car);
    }
    
    var_dump($cars);
    
    function do_something(&$car)
    {
        $car['name'] .= '_changed';
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-16
      • 1970-01-01
      • 2021-09-23
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多