关于&$地址传递的练习
2024-09-06 18:21:04
php默认为传值传递:
既:
$a=10;
$b=$a; //$b为10
$a=+10; //$a 为20
echo $a.'和'.$b; # $a is 20 and $b is 10!
要是想变为地址传递需要加&,既:
$a=10;
$b=&$a;
$a=+10;
echo $a.'和'.$b; # $a is 20 and $b is 20 too!
值传递只是将变量的内容复制一份而已,函数进行操作的其实是另一个变量,只是另一个变量的值和传递的变量值是相同的。例如上面例子中的$a和$b只是两个变量的值是相同的。
而地址传递是直接把变量的地址传递给函数,这时函数是直接对原来的变量进行操作的。所以值会变化。例如$b=&$a,是将$a的地址也传递给了$b,所以当$a的值发生了变化的时候,被传入变量地址的$b的值,也同时发生了变化。
举例说吧:值传递就相当于克隆了一个同样的变量,操作的是克隆出来的那个,原来的变量没有变化,但是地址传递是直接对原来的变量进行操作,没有克隆新的变量,这相当于变量只有一个。
也可以这样理解:比如要考试了,你有一份复习题,值传递就相当于别人借你的试卷去复印,然后在复印的那份上面做笔记,而地址传递就是别人直接在你原有的试卷上做笔记,没有复印,所以等你拿回来你会发现自己的试卷乱七八糟的。
最新文章
- webpack 使用教程--实时刷新测试
- iOS的一些面试题分析总结(1)
- ik扩展支持Solr配置
- svn设置外网访问
- 密钥文件snk
- android之ExpandableListActivity
- BeanUtils No value specified for Date的解决方法
- 在sklearn上读取人脸数据集保存图片到本地
- 通过命令行连接oracle数据库/进入sql plus
- poj 2288 tsp经典问题
- [LeetCode258]	Add Digits 非负整数各位相加
- 实验四 Android程序设计 实验报告
- 阿里、百度等多家公司Java面试记录与总结
- 初识Jmeter
- 【webpack学习笔记】a08-缓存
- 2.go的变量和常量
- mySQL explain解释
- secureCRT连接linux系统
- 常见pip方法
- 走进APICloud的世界 (1)