关于变量赋值?

WBOY
풀어 주다: 2016-06-23 14:27:54
원래의
904명이 탐색했습니다.


请问像一个变量赋值

$foo=25;

如果执行了这一句话,是不是在内存中同时开辟两个存储空间啊  一个是存储值25,另一个$foo里面存的是值25的地址。

下面我这样的理解是对的吗?



不然,如果是开辟一个空间那unset的时候值25应该被释放了啊:
$foo=25;
$boo=&$foo;
unset($boo);
echo $foo; //输出25



回复讨论(解决方案)

哥们,PHP5.4之后的引用部分改变了

$foo=25;$boo=$foo;unset($boo);echo $foo; //输出25func(&$var); function func(&$var){ //对$var的一系列运算处理 }但到了php5.4以后的版本,对数组和对象的引用传递发生了变化,是这样的:func($var); //注意这里,调用函数的时候已经没有了&,但定义的时候还有function func(&$var){//对$var的一系列运算处理}
로그인 후 복사

这就好比你在桌面创建了一个快捷方式,你把快捷方式删了,但是东西还在原来的位置。

等待大鸟。。。

如果你在使用unset();对其引用的变量的引用关系还在,那么这块内存暂时还不会被释放,只有当所有变量对这块内存区域的引用都断掉后,这块被释放的内存区域才会被释放

如果你在使用unset();对其引用的变量的引用关系还在,那么这块内存暂时还不会被释放,只有当所有变量对这块内存区域的引用都断掉后,这块被释放的内存区域才会被释放

谢谢回复,您好我只是想知道 当PHP解析器遇到$foo=25 在内存中的变化情况,可以指点下吗,谢谢啦

如果是对象
那么 $foo 保存的是对象的地址
$boo = $foo 只是copy了一个地址给他

但是 数据 25 只是一个 数值 所以 不会有 25这个对象  地址直接就是 数值

$boo存放的是$foo的地址

本帖最后由 xuzuning 于 2013-11-22 14:03:00 编辑

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