开发者社区> 问答> 正文

PHP中的数组是按值还是按引用传递?

当数组作为参数传递给方法或函数时,是通过引用传递吗?

怎么办呢:

$a = array(1,2,3); $b = $a; 是$b参考$a吗?

展开
收起
保持可爱mmm 2020-01-16 15:24:51 417 0
1 条回答
写回答
取消 提交回答
  • 对于问题的第二部分,请参见手册的数组页面,其中指出(引用):

    数组分配始终涉及值复制。使用引用运算符通过引用复制数组。

    并给出示例:

    对于第一部分,最好的确定方法是尝试;-)

    考虑下面的代码示例:

    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

    2020-01-16 15:25:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载