Home > Backend Development > PHP Tutorial > 关于php的unset

关于php的unset

WBOY
Release: 2016-06-23 14:31:32
Original
749 people have browsed it

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. 
Copy after login

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

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template