时间:2021-07-01 10:21:17 帮助过:20人阅读
关于php的引用(就是在变量或者函数、对象等前面加上&符号)的作用,我们先看下面这个程序。
1 |
|
2 | $a ?= 100;? //声明变量a |
3 | $b ?= & $a ;? //声明变量b,引用自变量a |
4 | echo ?"$a ;? |
5 | echo ?"$b ; |
6 | $a ++;? //变量a自增1 |
7 | echo ?"$a ; |
8 | echo ?"$b ; //查看变量b,也增加了1,说明使用的是同一存储单元 |
9 | ?> |
程序运行结果:
1 | 100 |
2 | 100 |
3 | 101 |
4 | 101 |
很多人误解php中的引用跟C当中的指针一样,事实上并非如此,而且很大差别。C语言中的指针除了在数组传递过程中不用显式申明外,其他都需要使用*进行定义,而php中对于地址的指向(类似指针)功能不是由用户自己来实现的,是由Zend核心实现的,php中引用采用的是“写时拷贝”的原理,就是除非发生写操作,指向同一个地址的变量或者对象是不会被拷贝的。
php默认为传值传递:
1 |
|
2 | $a ?= 20; |
3 | $b ?=? $a ; |
4 | $a ?=? $a ?+ 10; |
5 | echo ?$a . ' and ' . $b ; |
6 | ?> |
程序运行结果: