这是一个在开发中经常遇见的一个问题,所以很有必要对其深刻理解
传值:把实参的值赋值给形参,所以对形参的修改不会影响实参的值。就是单纯的将值赋值给形参。
传引用:是以地址的方式传递参数,传递以后,形参和实参都是同一个对象,只是名字不同,因为都指向的是一个地址,但对形参的修改会影响实参的值。
一、php中的传值与传引用的实例
<?php
header('content-type:text/html;charset=utf-8');
$str='LiangXi';
$res=strtolower($str)';
var_dump($res,$str);//liangxi LiangXi 此处为值传递 就是将实参赋值给形参
echo'<hr/>';
function test($i){
$i+=10;
var_dump($i);
}
$i=2;
test($i);
var_dump($i);//输出的结果为12,2(这也是简单的值传递,对形参的修改并未影响其实参的值)
echo '<hr/>'
//取变量的地址
function test1(&$j){
$j+=20;
var_dump($j);
}
$m=5;
test1($m);
var_dump($m);//输出结果为25,25.因为此时进行的为传引用,形参和实参都指向一个对象。