php 数组 类对象 值传递 引用传递 区别
一般的数据类型(int, float, bool)不做这方面的解说了
这里详细介绍一下数组和的类的对象作为参数进行值传递的区别
数组值传递
实例代码:
<?php function main() { $cc = array( 'a' , 'b' ); change($cc); var_dump($cc); die; } function change($cc){ $cc = array( 'dd' ); } main(); ?> output: array(2) { [0]=> string (1) "a" [1]=> string (1) "b" } |
数组引用传递
<?php function main() { $cc = array( 'a' , 'b' ); change($cc); var_dump($cc); die; } function change(&$cc){ $cc = array( 'dd' ); } main(); ?> outpout: array(1) { [0]=> string (2) "dd" } |
类对象值传递
<?php class pp{ public $ss = 0; } function main() { $p = new pp(); change($p); var_dump($p); die; } function change($p){ $p->ss = 10; } main(); ?> output: object (pp)#1 (1) { [ "ss" ]=> int (10) } |
类对象引用传递
<?php class pp{ public $ss = 0; } function main() { $p = new pp(); change($p); var_dump($p); die; } function change(&$p){ $p->ss = 10; } main(); ?> object (pp)#1 (1) { [ "ss" ]=> int (10) } |
总结:php中,数组是当一个普通变量,值传递是要一个实参的一个拷贝副本,跟实参无关,引用传递后可以改变实参的值
而类的对象是无论值传递和引用传递都是引用传递,是对对象的引用,都会改变实参的值
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步