php 数组 类对象 值传递 引用传递 区别
2011-12-10 21:31
453 查看
一般的数据类型(int, float, bool)不做这方面的解说了
这里详细介绍一下数组和的类的对象作为参数进行值传递的区别
数组值传递
实例代码:
数组引用传递
类对象值传递
类对象引用传递
总结:php中,数组是当一个普通变量,值传递是要一个实参的一个拷贝副本,跟实参无关,引用传递后可以改变实参的值
而类的对象是无论值传递和引用传递都是引用传递,是对对象的引用,都会改变实参的值
这里详细介绍一下数组和的类的对象作为参数进行值传递的区别
数组值传递
实例代码:
<?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中,数组是当一个普通变量,值传递是要一个实参的一个拷贝副本,跟实参无关,引用传递后可以改变实参的值
而类的对象是无论值传递和引用传递都是引用传递,是对对象的引用,都会改变实参的值
相关文章推荐
- [转载]php 数组 类对象 值传递 引用传递 区别
- php 数组 类对象 值传递 引用传递 区别
- php 数组 类对象 值传递 引用传递 区别
- php 数组 类对象 值传递 引用传递 区别
- php数组和对象的值传递和引用传递
- //值传递 和引用 传递的区别 例子(数组和 对象引用传递 是类似的)
- PHP对象默认按引用传递
- php 数组 传递 引用
- 如何将php数组或者对象传递给javascript
- jquery解决js对象、数组赋值时的引用传递
- 将php数组或者对象传递给js
- PHP中对象是按值传递还是按引用传递?
- php对象与数组的区别,类与对象的联系
- PHP和Javascript访问数组和对象时的区别
- 集合和数组保存对象的引用变量(区别C++的STL实现)
- php利用数组来进行引用传递
- php 函数引用、变量引用、对象引用的区别
- (转载)PHP数组传递是值传递而非引用传递
- php值和对象的值传递和引用传递
- PHP中数组,字符串和对象的在方法中的引用方式