关于变量赋值?

vcshellcode 2013-11-20 04:14:01

请问像一个变量赋值

$foo=25;

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

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



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


...全文
281 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2013-11-22
  • 打赏
  • 举报
回复
php 的变量管理可以简化为维护这样一张表
妖尾_火龙 2013-11-22
  • 打赏
  • 举报
回复
$boo存放的是$foo的地址
vcshellcode 2013-11-21
  • 打赏
  • 举报
回复
等待大鸟。。。
KK3K2005 2013-11-21
  • 打赏
  • 举报
回复
如果是对象 那么 $foo 保存的是对象的地址 $boo = $foo 只是copy了一个地址给他 但是 数据 25 只是一个 数值 所以 不会有 25这个对象 地址直接就是 数值
vcshellcode 2013-11-21
  • 打赏
  • 举报
回复
引用 5 楼 xuyanlu 的回复:
如果你在使用unset();对其引用的变量的引用关系还在,那么这块内存暂时还不会被释放,只有当所有变量对这块内存区域的引用都断掉后,这块被释放的内存区域才会被释放
谢谢回复,您好我只是想知道 当PHP解析器遇到$foo=25 在内存中的变化情况,可以指点下吗,谢谢啦
xuyanlu 2013-11-21
  • 打赏
  • 举报
回复
如果你在使用unset();对其引用的变量的引用关系还在,那么这块内存暂时还不会被释放,只有当所有变量对这块内存区域的引用都断掉后,这块被释放的内存区域才会被释放
vcshellcode 2013-11-20
  • 打赏
  • 举报
回复
顶起。。。。。。。
Hx_Moon_ 2013-11-20
  • 打赏
  • 举报
回复
这就好比你在桌面创建了一个快捷方式,你把快捷方式删了,但是东西还在原来的位置。
风.foxwho 2013-11-20
  • 打赏
  • 举报
回复
哥们,PHP5.4之后的引用部分改变了

$foo=25;
$boo=$foo;
unset($boo);
echo $foo; //输出25



func(&$var); 
function func(&$var){ 
//对$var的一系列运算处理 
}
但到了php5.4以后的版本,对数组和对象的引用传递发生了变化,是这样的:

func($var); //注意这里,调用函数的时候已经没有了&,但定义的时候还有
function func(&$var){
//对$var的一系列运算处理
}

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧