本文目录一览:
- php中传值与传引用的区别?
- php语言中传值赋值和引用赋值的区别笔记
- 请说明php中传值与传引用的区别.什么时候传值什么
- PHP对象赋值给变量的两种方式的区别,一般赋值和引用赋值
- php值传递和引用传递
- 详解PHP变量传值赋值和引用赋值变量销毁
php中传值与传引用的区别?
- 传值要重新构造一份原参数的拷贝。
- 传引用则不需要。
- 传值对参数的修改不会改变原参数。
- 传引用时可以直接修改原参数。 至于什么时候传引用,这看你的需要:
- 如果你的参数对象比较大(占用内存很多),而函数本身不需要修改原对象时,这个时候就推荐传引用,可以省去临时对象的构造开销。
- 如果有实际修改原参数的需要,那么就只能传引用了。
php语言中传值赋值和引用赋值的区别笔记
传值赋值:
- 变量表:放变量名,指向它们各自的位置(盒子)。
- 位置(盒子):存放值和类型。
$a1 = 234;
$a2 = 34556;
$a1 = $a2;
var_dump($a1, $a2);
$a2 = 'nongjiale.fun';
var_dump($a1, $a2);
引用赋值:
- 使用取地址符
&
。 - 变量名同时指向同一个位置(盒子)。
- 把
$y1
的地址赋值给$y2
。
$y1 = 23;
$y2 = 433;
var_dump($y1, $y2); // 输出 int 23 int 433
$y2 = $y1;
$y2 = 'mudidi.tech';
var_dump($y1, $y2); // 输出 string 'mudidi.tech' string 'mudidi.tech'
请说明php中传值与传引用的区别.什么时候传值什么
- 传值:是把实参的值赋值给行参,对行参的修改不会影响实参的值。
- 传引用:真正的以地址的方式传递参数,行参和实参都是同一个对象,对行参的修改将影响实参的值。
值传递:
- 仅将对象的值传递给目标对象,相当于
copy
。 - 系统将为目标对象重新开辟一个完全相同的内存空间。
引用:
- 将对象在内存中的地址传递给目标对象。
- 目标对象和原始对象对应同一个内存存储空间。
- 对目标对象进行修改,内存中的数据也会改变。
PHP对象赋值给变量的两种方式的区别,一般赋值和引用赋值
把变量存储值当成文件存储内容来理解:
- 普通赋值:相当于文件复制。
- 引用赋值:相当于建立快捷方式。
php值传递和引用传递
值传递:
- 是将右边变量的数据值本身,拷贝一份,赋值给左边变量。
- 例如:值传递之后,两个变量互不影响,改变一个,另一个不受影响。
引用传递:
- 是将右边变量对数据的引用关系,传给左边的变量。
- 后一个变量的值,会随着前一个变量的值的改变而改变。
详解PHP变量传值赋值和引用赋值变量销毁
示例代码:
$a = 100;
$b = 200;
var_dump($a, $b); // int(100) int(200)
传值赋值:
$a = 100;
$b = 200;
$a = $b; // 传值赋值
var_dump($a, $b); // int(200) int(200)
引用赋值:
$a = 100;
$b = 200;
$a = &$b; // 引用赋值
var_dump($a, $b); // int(200) int(200)
$a = 500;
var_dump($a, $b); // int(500) int(500)
$b = 700;
var_dump($a, $b); // int(700) int(700)
变量销毁:
unset()
用于销毁变量,但不一定释放内存。- 使用
$a = null
可以释放内存。
示例:
$a = 100;
$b = $a;
unset($a);
var_dump($a, $b); // NULL int(100)
$a = 100;
$b = $a;
$a = null;
var_dump($a, $b); // NULL NULL
数组示例:
$aaa = array('a' => 1, 'b' => 2);
unset($aaa['a']);
print_r($aaa); // Array ( [b] => 2 )
$bbb = array('a' => 1, 'b' => 2);
$bbb['a'] = null;
print_r($bbb); // Array ( [a] => [b] => 2 )
以上所述是小编给大家介绍的 PHP 变量传值赋值和引用赋值变量销毁详解整合,希望对大家有所帮助。