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


    不断发现……,不断更新……,不断寻找答案……
    例子的测试环境: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)

  • 相关阅读:
    smb 共享文件夹
    php nginx 配置
    mysql 存储过程
    ubuntu 源码下载分析
    rust 小米R3G官方rom(openwrt) openssl
    rust 配置
    mac 制作树莓派3b启动盘
    小米R2D
    golang 配置
    golang pprof操作流程
  • 原文地址:https://www.cnblogs.com/tdkj/p/3440139.html
Copyright © 2020-2023  润新知