当数组作为参数传递给方法或函数时,是通过引用传递吗?
怎么办呢:
$a = array(1,2,3); $b = $a; 是$b参考$a吗?
对于问题的第二部分,请参见手册的数组页面,其中指出(引用):
数组分配始终涉及值复制。使用引用运算符通过引用复制数组。
并给出示例:
对于第一部分,最好的确定方法是尝试;-)
考虑下面的代码示例:
function my_func($a) { $a[] = 30; }
$arr = array(10, 20); my_func($arr); var_dump($arr); 它将给出以下输出:
array 0 => int 10 1 => int 20 这表明该函数尚未修改作为参数传递的“外部”数组:它作为副本而不是引用传递。
如果要通过引用传递它,则必须通过以下方式修改该函数:
function my_func(& $a) { $a[] = 30; } 输出将变为:
array 0 => int 10 1 => int 20 2 => int 30 同样,这一次,数组已“通过引用”传递。 问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。