> 백엔드 개발 > PHP 튜토리얼 > php的指针摘引

php的指针摘引

WBOY
풀어 주다: 2016-06-13 11:44:23
원래의
952명이 탐색했습니다.

php的指针引用

PHP的的指针的特性:


1,用=&来把变量的地址传给另一个变量,这样,另一个变量就指向了同一个地址


2,用$c=$p;其中$p为指针,像这样的赋值,其实是把相当于让$c引用了$p所指的变量,而不是地址


3, 普通的=号是把一个变量的引用传给另一个变量,如果源变量的内容不变,那么引用它的变量的内容也不会变,即当没有修改变量内容的时候,两个变量是指向同一 个地址,但当源变量修改时,引用它的变量就会把源变量的内容复制一份出来放到一个新的内存地址中,引用它的变量则是指向这个新创建的内存地址,用简单的一 句话概况就是:修改时复制


4,所以,回到(2),如果$p指向的内容发生了变化,那么,也会自动复制一份$p原来的内容到一块新的内存地址中,当用echo输出$c的时候,输出的内容还是$p的内容发生改变前的内容。


5,综上所述,可以推导出(并且也经过实验证明了),如果有$a,$b=&$a,那么你修改a时,b的内容也会随之改变,如果你想再用c来引用b,并且在a改变时也能影响到c,那么必须如下这样写:
???? $a="aa";
???? $b=&$a;
???? $c=&$b;
???? 如此这般,当a变化时,用echo输出b和c的结果和a的内容是一样的,当然这样是为了说明php指针的特性,并不特意想说明他在具体应用中会有什么用,只是为了更加深刻的理解php的指针。
???? 如果上面的三行代码最后一行变成:$c=$b;


???? 那么在a发生改变时,输出c的值还是a原来的值。

?

来源:http://www.phper.org.cn/?post=120

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿