php - 函数参数为引用数组时的一个疑问?

查看:80
本文介绍了php - 函数参数为引用数组时的一个疑问?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

// 示例1
function test(&$a) {
    $a = &$a['a'];
    $a = 2;
}

$a = ['a' => 'a1', 'b' => 'b1'];
test($a);
print_r($a);
/* 以上结果为:
array:2 [
  "a" => 2
  "b" => "b1"
]
*/


// 示例2
function test1(&$a) {
    $a = $a['a'];
    $a = 2;
}
$a = ['a' => 'a1', 'b' => 'b1'];
test1($a);
print_r($a);
/* 以上结果为:
2
*/

示例2可以理解,但示例1却很难理解,请大家指点。(类似的代码出现在laravel array_set函数里)

解决方案

//示例1
$a = &$a['a']; 

$a 重新赋值,此时$a只是指向$a['a']在内存中的真实地址

这篇关于php - 函数参数为引用数组时的一个疑问?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆