首页 > 代码库 > PHP值传递和引用传递的区别

PHP值传递和引用传递的区别

 

PHP值传递和引用传递的区别。什么时候传值什么时候传引用

(1)按值传递:函数范围内对值的任何改变在函数外部都会被忽略

(2)按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改

(3)优缺点:

A:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。

B.按引用传递则不需要复制值,对于性能提高很有好处。

 1 <?php
 2     header(‘content-type:text/html;charset=utf-8‘);
 3 
 4     //探讨一下 array , null, 对象 ,资源的默认传递方式
 5     // 结论 (1) array 默认是值传递,通过加 & 可以引用传递
 6     //      (2)  null 默认是值传递,通过加 & 可以引用传递
 7     //      (3) 资源  是值传递.通过加 & 可以引用传递
 8     //        (4) 对象默认也是值传递,但是对象值传递是对象标识符    
 9     $hero = array(‘no1‘=>‘蝙蝠侠‘, ‘no2‘=>‘超人‘);
10 
11     $hero2 = &$hero;
12     $hero2[‘no1‘] = ‘蜘蛛侠‘;
13     echo ‘<pre>‘;
14     var_dump($hero);
15     var_dump($hero2);
16 
17 
18     $a = null;
19     $b = &$a;
20     $b = ‘abc‘;
21 
22     var_dump($a, $b);

PHP值传递和引用传递的区别