PHP中传值与传引用的区别

<?php
/*
func1() : 传值的话,如果是非对象,会传一个值的拷贝,对这个变量做任何改动都不影响原值。
*/
function func1($a) {
$a = $a + 1;
}
/*
func2(): 传引用或者传对象,是传真实的内存地址,对这个变量做的改动会影响原值。
*/
function func2(&$a) {
$a = $a + 1;
}
$sample = 1;
func1($sample);
echo $sample; // 不会改变原值,输出 1

$sample = 1;
func2($sample);
echo $sample; // 输出 2

?>

时间: 2024-08-06 03:46:26

PHP中传值与传引用的区别的相关文章

php传值和传引用的区别

php传值和传引用的区别所谓值传递,就是说仅将对象的值传递给目标对象,就相当于copy:系统将为目标对象重新开辟一个完全相同的内存空间.所谓传引用,就是说将对象在内存中的地址传递给目标对象,就相当于使目标对象和原始对象对应同一个内存存储空间.此时,如果对目标对象进行修改,内存中的数据也会改变.

Java中传值和传引用

今天看了Java中的传值和传引用,对于这一块开始的时候不太能理解,通过查阅其他几篇blog,将自己的理解记录下来: 比较好的几篇blog:http://blog.csdn.net/houpuhope/article/details/7449377; 首先对于传值和传引用需要有一个初步的理解就是,通过传值的方式传进来的参数修改了,对原变量并没有什么影响: 而,通过传引用的方式修改的,原变量值也跟着改变.下面进行详细的解析: 1.对于基本类型Java是按照传值传递的: public class Te

(转) java 函数形参传值和传引用的区别.

(一)基本数据类型:传值,方法不会改变实参的值. [java] view plain copy public class TestFun { public static void testInt(int i){ i=5; } public static void main(String[] args) { int a=0 ; TestFun.testInt(a); System.out.println("a="+a); } } 程序执行结果:a=0 . (二)对象类型参数:传引用,方法

php中传值与传引用的区别是什么

php传值:在函数范围内,改变变量值的大小,都不会影响到函数外边的变量值. PHP传引用:在函数范围内,对值的任何改变,在函数外部也有所体现,因为传引用传的是内存地址. 传值:和copy是一样的.打个比方,我有一橦房子,我给你建筑材料,你建了一个根我的房子一模一样的房子,你在你的房子做什么事都不会影响到我,我在我的房子里做什么事也不会影响到你,彼此独立. 1 <?php 2 $testa=1; //定义变量a 3 $testb=2; //定义变量b 4 $testb = $testa; //变量

C++-传值与传引用的区别

//值传递与引用传递的区别 #include <iostream> #include <iomanip> using namespace std; void fiddle(int in1, int &in2) { in1 = in1 + 100; in2 = in2 + 100; cout << "The values are "; cout << setw(5) << in1; cout << setw(

Java 传参数时,传值和传引用的区别

转载请注明出处,原文地址: http://blog.csdn.net/h28496/article/details/44732713 中北大学 郑海鹏 最近在复习那九大排序算法时,意外的发现用冒泡排序.插入排序.选择排序等in-place sort时, sort(a); 再把a输出,就是已经排好序的新数组了. 但是用归并排序等out-place sort时,sort(a); 之后,输出的还是原来的数组! 为什么呢?请看代码和里面的注释: package zhp.outplace_sort; im

Java中的传值与传引用

曾经对java中传值还是传引用的问题十分困惑,而且也被问到过许多次,无论是面试,还是平时我们平时的讨论中. 在stackoverflow上面浏览时,无意中发现了跟这个问题有关的论题,于是深入地查看了,感觉获益匪浅,于是结合自己过去的经验,写了这篇博客跟大家分享. 以前我觉得是这样的,java中的基本数据类型和String是传值的,而其它的类类型的数据则是传引用的.不过现在我觉得不是这样的. *****************************************************

php传值与传址的区别

PHP中传值和传址的区别, 十分的简单, 看字面的意思大概就知道是什么意思了, 下面通过简单的实例看一下两者的区别. 1 $a = 5; 2 function show(&$b) { 3 $b += 10; 4 echo "函数内部:" . $b . "<hr>";//结果: 15 5 } 6 show($a); 7 echo "函数外部:" . $a . "<hr>";//结果: 15 总结:

python中给函数传参是传值还是传引用

首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传递. 值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本.值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值. 引用传递(pass-