2012-07-02 33 views
0
$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()函數中,$是一個引用還是一個值?如果它是一個引用,我該如何檢索循環中的值並將其傳遞給函數?PHP - 引用的數組變量的索引是否也是引用?

回答

3

否,$namedo_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'; 
}