zoukankan      html  css  js  c++  java
  • 关于php的unset

    简介:这是关于php的unset的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。

    class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=340518' scrolling='no'>

    php的unset很特别。

    简单的说:

    参考php手册:

    <?php
    /* Imagine this is memory map
     ______________________________
    |pointer | value | variable              |
     -----------------------------------
    |   1     |  NULL  |         ---           |
    |   2     |  NULL  |         ---           |
    |   3     |  NULL  |         ---           |
    |   4     |  NULL  |         ---           |
    |   5     |  NULL  |         ---           |
    ------------------------------------
    Create some variables   */
    $a=10;
    $b=20;
    $c=array ('one'=>array (1, 2, 3));
    /* Look at memory
     _______________________________
    |pointer | value |       variable's       |
     -----------------------------------
    |   1     |  10     |       $a               |
    |   2     |  20     |       $b               |
    |   3     |  1       |      $c['one'][0]   |
    |   4     |  2       |      $c['one'][1]   |
    |   5     |  3       |      $c['one'][2]   |
    ------------------------------------
    do  */
    $a=&$c['one'][2];
    /* Look at memory
     _______________________________
    |pointer | value |       variable's       |
     -----------------------------------
    |   1     |  NULL  |       ---              |  //value of  $a is destroyed and pointer is free
    |   2     |  20     |       $b               |
    |   3     |  1       |      $c['one'][0]   |
    |   4     |  2       |      $c['one'][1]   |
    |   5     |  3       |  $c['one'][2]  ,$a | // $a is now here
    ------------------------------------
    do  */
    $b=&$a;  // or  $b=&$c['one'][2]; result is same as both "$c['one'][2]" and "$a" is at same pointer.
    /* Look at memory
     _________________________________
    |pointer | value |       variable's           |
     --------------------------------------
    |   1     |  NULL  |       ---                  |  
    |   2     |  NULL  |       ---                  |  //value of  $b is destroyed and pointer is free
    |   3     |  1       |      $c['one'][0]       |
    |   4     |  2       |      $c['one'][1]       |
    |   5     |  3       |$c['one'][2]  ,$a , $b |  // $b is now here
    ---------------------------------------
    next do */
    unset($c['one'][2]);
    /* Look at memory
     _________________________________
    |pointer | value |       variable's           |
     --------------------------------------
    |   1     |  NULL  |       ---                  |  
    |   2     |  NULL  |       ---                  |  
    |   3     |  1       |      $c['one'][0]       |
    |   4     |  2       |      $c['one'][1]       |
    |   5     |  3       |      $a , $b              | // $c['one'][2]  is  destroyed not in memory, not in array
    ---------------------------------------
    next do   */
    $c['one'][2]=500;    //now it is in array
    /* Look at memory
     _________________________________
    |pointer | value |       variable's           |
     --------------------------------------
    |   1     |  500    |      $c['one'][2]       |  //created it lands on any(next) free pointer in memory
    |   2     |  NULL  |       ---                  |  
    |   3     |  1       |      $c['one'][0]       |
    |   4     |  2       |      $c['one'][1]       |
    |   5     |  3       |      $a , $b              | //this pointer is in use
    ---------------------------------------
    lets tray to return $c['one'][2] at old pointer an remove reference $a,$b.  */
    $c['one'][2]=&$a;
    unset($a);
    unset($b);   
    /* look at memory
     _________________________________
    |pointer | value |       variable's           |
     --------------------------------------
    |   1     |  NULL  |       ---                  |  
    |   2     |  NULL  |       ---                  |  
    |   3     |  1       |      $c['one'][0]       |
    |   4     |  2       |      $c['one'][1]       |
    |   5     |  3       |      $c['one'][2]       | //$c['one'][2] is returned, $a,$b is destroyed
    --------------------------------------- ?>
    I hope this helps. 
    

    如此便能够说明php 的 unset是如何进行的。

    爱J2EE关注Java迈克尔杰克逊视频站JSON在线工具

    http://biancheng.dnbcw.info/php/340518.html pageNo:7
  • 相关阅读:
    【瞎搞】 HDU 3101 The Heart of the Country
    使用EXCEL设置“下拉菜单”选项功能
    IE, FireFox, Opera 浏览器支持CSS实现Alpha透明的方法 兼容问题
    Linux的文件权限
    刘德华夏日Fiesta演唱会上那个表演探戈舞的演员是谁啊?_百度知道
    每周日与周四《红酒屋》探戈舞会"Wine Bar" Milonga_原生态拉丁_新浪博客
    精华区文章阅读
    探戈
    探戈
    TangoWalk小组课程与优惠(20131208更新) | TangoWalk 学跳阿根廷探戈舞
  • 原文地址:https://www.cnblogs.com/ooooo/p/2245233.html
Copyright © 2011-2022 走看看