PHP - 引用的数组变量的索引是否也是引用?

时间:2012-07-02 11:03:45

标签: php pass-by-reference

$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是引用还是值?如果它是一个引用,我如何只检索循环中的值并将其传递给函数?

1 个答案:

答案 0 :(得分:3)

不,$name函数中的do_something()不是引用,它不是通过引用传递,只是将$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';
}