Ссылка в foreach - PullRequest
       16

Ссылка в foreach

0 голосов
/ 08 февраля 2012

Имея ссылку в foreach, что это значит и в чем выгода?

Например:

foreach ($delivery as &$store) {
            $store = ClassName::FunctionName($store);
} 
unset($store);

Я никогда не использую ссылки, когда пишу код в PHP.

1 Ответ

3 голосов
/ 08 февраля 2012

Если вы не перейдете по ссылке в цикл foreach, любые изменения и обновления не будут автоматически сохранены в исходной структуре данных после завершения цикла.

Например:

$test = array('cat'=>'meow','dog'=>'woof');

foreach($test as $a){
    $a='test';
}
print_r($test);

В этом случае массив будет по-прежнему содержать:

array('cat'=>'meow','dog'=>'woof');

Однако в этом примере используются ссылки:

$test=array('cat'=>'meow','dog'=>'woof');

foreach($test as &$a){
    $a='test';
}
var_dump($test);

... массив будет содержать:

array('cat'=>'test','dog'=>'test');
...