函数调用完后,所有变量都会被删除。怎么理解?

danshends 2018-09-22 11:38:43
<?php
function test() {
$x = 10;
}
test();
?>

一直不明白,函数调用完了变量会被删除,
输出变量值:10,变量$x哪里被删除了?不明白什么意思啊...
...全文
2227 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhongky 2018-10-12
  • 打赏
  • 举报
回复
作用域不同 函数内声明的变量只这函数内有效 外部无效
qq_39047451 2018-10-12
  • 打赏
  • 举报
回复
了解下回收机制
水光清浅 2018-10-09
  • 打赏
  • 举报
回复
变量的作用域
m313557552 2018-10-03
  • 打赏
  • 举报
回复
你要了解变量在内存中是怎么存在的,就可以理解了。
当你没用调用函数时,函数中的变量是不存在内存中的,整个函数就没用去执行。
当你调用函数时,程序开始执行,变量被声明,内存中会分配一个var容器,用来存放变量名,变量值,is_ref和引用计数器;当函数调用完成,函数执行结束,变量的引用计数器为0,变量在内存中的空间被释放,也就是变量被删除。
你可以看下php的垃圾回收机制,变量的作用域,等。
legendaryhaha 2018-09-28
  • 打赏
  • 举报
回复
从内存抹去(我的意思不是真正的消失,事实上,数据在内存中也很难做到真正消失,我们删除数据时,底层操作只是将指向数据的指针变为空,下次有数据时,就可以用这块内存块了,直接覆盖),释放资源
onepersons 2018-09-24
  • 打赏
  • 举报
回复

<?php

function f()
{
    
    $str = str_repeat('test', 1000);
    echo "运行中: ".memory_get_usage()."B\n";

}
echo "开始前: ".memory_get_usage()."B\n";
f();
echo "结束后: ".memory_get_usage()."B\n";
?>
自己去感受吧
xuzuning 2018-09-23
  • 打赏
  • 举报
回复
请认真阅读入门书籍

21,890

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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