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