public function test(){
// 加&的:
$cc = [[1],[2]];
foreach ($cc as $key => &$item){
$item['aa'] = 111;
}
var_dump($cc);die;
// 不加&的
$cc = [[1],[2]];
foreach ($cc as $key => $item){
$item['aa'] = 111;
}
var_dump($cc);die;
// 不加&,又想达到加&的效果
$cc = [[1],[2]];
foreach ($cc as $key => $item){
$cc[$key]['aa'] = 111;
}
var_dump($cc);die;
// 所以foreach中$item加&应该是为了偷个懒吧
// 这里还涉及指针的知识,有兴趣的推荐了解一下哦
}
// 加&输出的结果:
array(2) {
[0]=>
array(2) {
[0]=>
int(1)
["aa"]=>
int(111)
}
[1]=>
&array(2) {
[0]=>
int(2)
["aa"]=>
int(111)
}
}
// 不加&输出的结果
array(2) {
[0]=>
array(1) {
[0]=>
int(1)
}
[1]=>
array(1) {
[0]=>
int(2)
}
}
&:引用赋值的意思
如:
// 用在变量上:
public function test()
{
$a = 1;
$b = &$a;
$b = 2;
echo $a;die;
}
// 输出的结果:2
// 用在方法上:
public function "e()
{
$b = 1;
$b++;
return $b;
}
public function test()
{
$a = $this->"e();
var_dump($a);// 2
$a = 5;
$a = $this->"e();
var_dump($a);// 6
}