扫码关注官方订阅号
$a=4; unset($GLOBALS['a']); var_dump($a);
$a和$GLOBALS['a']在内存中的关系是怎样的
肯定不是这样的
如果是这样的话unset($GLOBALS['a']) $a应该还是存在的求解,非常感谢诸位
人生最曼妙的风景,竟是内心的淡定与从容!
首先你需要弄清 unset 的作用机制;它在函数中执行和函数外执行是不一样的;详细参见unset
unset
按照你的代码执行,unset 会同时销毁 $a 和 $GLOBALS['a'];
$a
$GLOBALS['a']
但是 $a 和 $GLOBALS['a'] 是两个独立的变量,并不是引用,一个是普通变量,一个是全局变量
局部变量保存在active_symbol_table全局变量保存在symbol_table局部变量和全局变量除了保存在不同的符号表中,在php内核中其余都是一模一样的
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
首先你需要弄清
unset的作用机制;它在函数中执行和函数外执行是不一样的;详细参见unset
按照你的代码执行,
unset会同时销毁$a和$GLOBALS['a'];但是
$a和$GLOBALS['a']是两个独立的变量,并不是引用,一个是普通变量,一个是全局变量局部变量保存在active_symbol_table
全局变量保存在symbol_table
局部变量和全局变量除了保存在不同的符号表中,在php内核中其余都是一模一样的