Home  >  Article  >  Backend Development  >  关于php的unset

关于php的unset

WBOY
WBOYOriginal
2016-06-23 14:31:32734browse

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是如何进行的。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:PHP和MySQL入门(2)Next article:php上传资料