传值与传引用 可以来个小讨论么。。。 传值与传引用。。百度了一下,对引用还是不太明白引用难懂 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 传值就像copy比如:----------$b = 1;$a = $b;$a = 2;echo $b;//still out put 1此时内存会自动分配个存储空间给$a,形式是一个地址,一个存储值的单元,地址指向值.当$a指向的值改变时,它处理的是$a的存储空间,不影响$b.就好像你回家,拿钥匙(地址),开门,家里的东西都是你的(存储单元)别人回别人家干什么,不关你的事.$b = 1;$a = &$b;$a = 2;echo $b;//now change,will output 2传引用,意即$a,$b拥有同样的地址,当$a所指向的值发生变动时,它处理的是$a,$b共有的存储空间,所有$b当然也改变了.就好像你的亲人和你都拥有家里的钥匙(地址),他从家里拿走一些东西(改变单元值),那家里东西不就改变了吗. ....我说的不够好,容易让你误解.如果有空余时间,你可以找本c语言看看.如果不想深究,知道个大概原理就行了.拿买房和租房来打比方:$a = $b=========================================================相当于买房,$b是你好朋友的一栋房,地址在:XXXXXXX.你现在买了一栋房$a,规格和$b一摸一样,但是地址在:YYYYYYY.房子是你的,你爱怎么装修怎么装修,ok?$a = &$b=======================================================相当于租房,$b是你好朋友的一栋房,地址在:XXXXXXX.你决定租你好朋友的房住进去.你对外宣称,现在住的房子是$a,其实就是$b,因为地址一摸一样啊.你总不会租房装修吧? 因为网上的资料都涉及一些 从c++的其他的概念,我不能一下子消化了这么多的从c++的概念、、我试试从新规纳朋友的信息:$a = $b;内存单元是不同的,只是解析(php为解析性语言)的时候,联系在一起。把把$b 的内容放到 $a,$b的内容当然是不会随着$a 变化的。-----------------------此时内存会自动分配个存储空间给$a,形式是一个地址,一个存储值的单元,地址指向值.这句是朋友说错了还是怎么了呢我发觉怎么解析都理解不了。-----------------------$a = &$b;按照朋友的看法:很明显他们是内存单元是相同的,只是这个内存单元比较特别:有两个名称。。而且还有其他的特点。这个其他特点就是小弟不理解的了——————————————————————————————内存单元:可以有三样东西1: 地址。2:名称.3:内容。地址是唯一的,名称是可以多个的,内容如果不是类型定义为常量的话是可以变的。不知道小弟说的以上有没有知识错误。——————————————————————$a = &$b;按照朋友的看法:很明显他们是内存单元是相同的,只是这个内存单元比较特别:有两个名称。。而且还有其他的特点。这个其他特点就是小弟不理解的了 呵呵,c++ 可以通过指针指向变量的引用获取变量的地址,php是做不到的.把引用说成变量的'别名',不要说成地址什么的,这样好理解点. 传值 相当于a给了copy了气球,送给了b,你不管怎么操作,哪怕把它弄坏,a手里的还是原封未动,引用传值 相当于a把本身的气球给了b,b在上面进行涂写等,然后在给a,气球就发生的变化, Fly_yang() ( ) ,朋友我恳请你了,,,不要在做比比喻了好不好呢 既然"c 语言还是在行的"那么理解c中a =& b;的意义应该是没有问题的了由于c代码将被编译成机器指令,所以变量a、b 将指向同一个内存地址php是由c语言程序员创造的,所以继承了绝大部分的c语法元素$a =& $b;从实用意义上而言,与c语言并没有什么差别但由于php是解释执行的,所以变量地址并不可能是物理地址,而只能是一个列表项 求mysql高手解决问题,急等啊 请教熟悉DiscuzX1.5的大猿~~ PHP关于页面重定向的问题 用C++或许C做后台php做前台通信方式会怎样? 我想在生成静态页面时,显示正在生成哪个页面,这个功能怎么做? 概率问题 $name 是中文就出错,,这是什么 不知道哪里出错了,帮忙看看~~谢谢啊 如何动态改变图片大小? (php4 oracle9i linux apache) 用啥模板好?phplib?fasttemplate? Smarty在UTF-8上的問題 在wap页面中显示mysql中文,即提示格式不支持!
比如:
----------
$b = 1;
$a = $b;
$a = 2;
echo $b;//still out put 1
此时内存会自动分配个存储空间给$a,形式是一个地址,一个存储值的单元,地址指向值.
当$a指向的值改变时,它处理的是$a的存储空间,不影响$b.就好像你回家,拿钥匙(地址),开门,家里的东西都是你的(存储单元)
别人回别人家干什么,不关你的事.$b = 1;
$a = &$b;
$a = 2;
echo $b;//now change,will output 2
传引用,意即$a,$b拥有同样的地址,当$a所指向的值发生变动时,它处理的是$a,$b共有的存储
空间,所有$b当然也改变了.就好像你的亲人和你都拥有家里的钥匙(地址),他从家里拿走一些东西(改变单元值),那家里东西不就改变了吗.
=========================================================
相当于买房,$b是你好朋友的一栋房,地址在:XXXXXXX.
你现在买了一栋房$a,规格和$b一摸一样,但是地址在:YYYYYYY.
房子是你的,你爱怎么装修怎么装修,ok?$a = &$b
=======================================================
相当于租房,$b是你好朋友的一栋房,地址在:XXXXXXX.
你决定租你好朋友的房住进去.
你对外宣称,现在住的房子是$a,其实就是$b,因为地址一摸一样啊.
你总不会租房装修吧?
因为网上的资料都涉及一些 从c++的其他的概念,我不能一下子消化了这么多的从c++的概念、、我试试从新规纳朋友的信息:$a = $b;内存单元是不同的,只是解析(php为解析性语言)的时候,联系在一起。
把把$b 的内容放到 $a,$b的内容当然是不会随着$a 变化的。
-----------------------
此时内存会自动分配个存储空间给$a,形式是一个地址,一个存储值的单元,地址指向值.
这句是朋友说错了还是怎么了呢我发觉怎么解析都理解不了。
-----------------------$a = &$b;按照朋友的看法:很明显他们是内存单元是相同的,只是这个内存单元比较特别:有两个名称。。而且还有其他的特点。这个其他特点就是小弟不理解的了——————————————————————————————
内存单元:可以有三样东西1: 地址。
2:名称.
3:内容。地址是唯一的,名称是可以多个的,内容如果不是类型定义为常量的话是可以变的。不知道小弟说的以上有没有知识错误。
——————————————————————$a = &$b;按照朋友的看法:很明显他们是内存单元是相同的,只是这个内存单元比较特别:有两个名称。。而且还有其他的特点。这个其他特点就是小弟不理解的了
把引用说成变量的'别名',不要说成地址什么的,这样好理解点.
引用传值 相当于a把本身的气球给了b,b在上面进行涂写等,然后在给a,气球就发生的变化,
那么理解c中
a =& b;
的意义应该是没有问题的了
由于c代码将被编译成机器指令,所以变量a、b 将指向同一个内存地址php是由c语言程序员创造的,所以继承了绝大部分的c语法元素
$a =& $b;
从实用意义上而言,与c语言并没有什么差别
但由于php是解释执行的,所以变量地址并不可能是物理地址,而只能是一个列表项