不断发现……,不断更新……,不断寻找答案……
例子的测试环境:php5.3,win7,64位
Num1:
<?
$a=array(1,2,3,4,5,6);
$b=$a;
$m=memory_get_usage();
unset($b[1],$b[2]);
$mm=memory_get_usage();
echo $mm-$m;   #####392
?>
<?
$a=array(1,2,3,4,5,6);
$b=array(1,2,3,4,5,6);
$m=memory_get_usage();
unset($b[1],$b[2]);
$mm=memory_get_usage();
echo $mm-$m;   #####-80
?>
上边那个,unset释放内存后,php使用内存量不但没有减少,而且还反而增加了。下边的是正常的。为什么?"变量的分离 copy on write" 。以后说……
Num2:
<?
$a=1;
$b=&$a;
unset($b);
echo $a; ######1
?>
unset到底做了啥啊,php中引用到底什么个情况。以后说……
Num3:
<?
$a = 1;
function test(){
    unset($GLOBALS['a']);
}
test();
echo $a;########PHP Notice:  Undefined variable: a
?>
<?
$a = 1;
function test(){
global $a;
unset($a);
}
test();
echo $a;#####1
?>
一个抱notice变量找不到,一个正常输出。$GLOBALS和global有啥区别(曾经看到过腾讯一个面试题)。以后说……(global $var相当于&$GLOBALS['var'],这个问题追加到Num2)

php变量那些事:学习过程中遇到的关于php变量的有趣的问题(不断发现不断更新)的更多相关文章

  1. Bash 中的 _ 是不是环境变量

    首先,我们想到的会是 export(等价于 declare -x)命令: $ export | grep 'declare -x _=' 没有找到,那么结论就是 _ 不是环境变量?当然没那么简单,否则 ...

  2. 关于JDBC学习过程中的注意事项(分享自己犯过的错误,写给初学JDBC的小伙伴的八条建议)

    关于JDBC学习过程中的注意事项(分享自己犯过的错误,写给初学JDBC的小伙伴的八条建议) 前言:最近在学习JDBC,总结了几个小问题,特地分享给大家,让大家不要犯这样的错误,也希望大家养成学会总结的 ...

  3. 用var声明变量,在java中居然有这么多细节,你都了解么?

    简介 Java SE 10引入了局部变量的类型推断.早先,所有的局部变量声明都要在左侧声明明确类型. 使用类型推断,一些显式类型可以替换为具有初始化值的局部变量保留类型var,这种作为局部变量类型 的 ...

  4. 一些JavaSE学习过程中的思路整理(主观性强,持续更新中...)

    目录 一些JavaSE学习过程中的思路整理(主观性强,持续更新中...) Java书写规范 IDEA的一些常用快捷键 Java类中作为成员变量的类 Java源文件中只能有一个public类 Java中 ...

  5. Python中的类变量和成员变量

    类变量 定义 在类里面定义,且不位于构造或者成员函数里面,同时没有" self. " 的前缀:或者在类外定义,用 类名.类变量名 来新增加类变量. 使用 两种使用方法: (1)类名 ...

  6. linux centos中添加删除修改环境变量,设置java环境变量

    前言 安装完软件必要添加环境变量.指令很少,然而长时间不写就会不自信:我写的对吗?于是百度开始,于是发现又是各有千秋.好吧,好记星不如烂笔头.当然,最重要的是,百度出来的都他妈的是如何添加环境变量,只 ...

  7. php中引用&的真正理解-变量引用、函数引用、对象引用

    php的引用(就是在变量或者函数.对象等前面加上&符号) //最重要就是 删除引用的变量 ,只是引用的变量访问不了,但是内容并没有销毁 在PHP 中引用的意思是:不同的名字访问同一个变量内容. ...

  8. Java学习过程中的总结的小知识点(长期更新)

    Java学习过程中的总结的小知识点 (主要是自己不会的知识和容易搞错的东西) 计算某个程序运行的时间 long stime=System.currentTimeMillis(); copy3(file ...

  9. js中let和var定义变量的区别

    let变量之前没见过,刚遇到,探探究竟. 以下转自:http://blog.csdn.net/nfer_zhuang/article/details/48781671 声明后未赋值,表现相同 (fun ...

随机推荐

  1. Ext 中xtype一览

    基本组件: xtype Class 描述 button Ext.Button 按钮 splitbutton Ext.SplitButton 带下拉菜单的按钮 cycle Ext.CycleButton ...

  2. [SQL]SQL类似统计功能的sql文

    declare @t table(name varchar(),type int) insert into @t union all union all union all union all if ...

  3. SQL 获取各表记录数的最快方法

    select distinct o.name,i.rows from sysobjects o,sysindexes  i where o.id=i.id and o.Xtype= 'U' and i ...

  4. 【转】开源性能测试工具 - Apache ab 介绍

    版权声明:本文可以被转载,但是在未经本人许可前,不得用于任何商业用途或其他以盈利为目的的用途.本人保留对本文的一切权利.如需转载,请在转载是保留此版权声明,并保证本文的完整性.也请转贴者理解创作的辛劳 ...

  5. Appium输入中文的问题,简单的方法

    经常有人问,Appium怎么输入中文,下面提供一种相对简单的方式. 以前曾经提到过capabilities关键字,里面有这样2个属性, |`unicodeKeyboard`| 使用 Unicode 输 ...

  6. 软件测试入门——测试模型(V型 W型 H型)

    软件测试工程师称为“QA”,质量保证者——这是入门的第一点要学习的. 首先看基本的测试模型 1.“V”型 特点:[活动串行]这是一种古老的瀑布模型,反映了实际和测试之间的关系. 局限:仅仅把测试过程作 ...

  7. 联系博主(推介联系QQ)

    李莫,OI 蒟蒻一只 QQ:740929894 邮箱:12958954@163.com limo740929894@gmail.com (目测国外网站的邮件发不进网易邮箱,所以注册了个Gmail,但是 ...

  8. python连mysql时避免出现乱码

    使用python连mysql时候,常常出现乱码,采取以下措施可以避免 1 Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8)2 MySQL数据库charset=ut ...

  9. C++调用WebService服务问题总结

    近期接手一部分C++研发工作,同时与.NET开发小组进行软件功能协作,于是需要调用.NET WebService服务,已完成数据的网络通讯业务功能:结束之余,将手头碰到的问题总结罗列如下: C++如何 ...

  10. com学习(四)——用 ATL 写第一个组件

    建立 ATL 工程 步骤2.1:建立一个工作区(WorkSpace). 步骤2.2:在工作区中,建立一个 ATL 工程(Project).示例程序叫 Simple1,并选择DLL方式,见图一. 图一. ...