欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

关于php的unset

程序员文章站 2023-12-30 09:55:40
...
php的unset很特别。

简单的说:

参考php手册:

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

相关标签: 关于php的unset

上一篇:

下一篇: