Home > php教程 > php手册 > body text

php 中遍历数组时使用引用出现的问题

WBOY
Release: 2016-06-06 19:40:36
Original
1275 people have browsed it

今天在 使用 foreach遍历数组时发现,当 使用 时会 出现 问题 : $arr = array( array('id' = 100, 'error'= 'aa'), array('id' = 101, 'error'= 'bb'),);foreach($arr as $value) { if($value['id'] == 101) $value['error'] = 'test';}var_dump($arr);forea

今天在使用foreach遍历数组时发现,当使用&时会出现问题:

$arr = array(
    array('id' => 100, 'error'=> 'aa'),
    array('id' => 101, 'error'=> 'bb'),
);

foreach($arr as &$value) {
    if($value['id'] == 101) $value['error'] = 'test';
}

var_dump($arr);

foreach($arr as $value) {}
var_dump($arr);
Copy after login

  php 中遍历数组时使用引用出现的问题

后来查看手册才发现,原来是因为在遍历时使用引用,当第二次遍历数组时,数组的指针$value 还是指向数组的末尾的元素,当重新赋值时 $value 指向的数组的末尾的元素就被修改了
解决办法是在第一次遍历完成之后就将$value unset()掉。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template