自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PHP unset()函數(shù)銷毀變量

開發(fā) 后端
PHP unset()函數(shù)被我們用來(lái)銷毀變量,但是往往在實(shí)際操作時(shí)不能使內(nèi)存中的數(shù)據(jù)進(jìn)行釋放。我們?cè)谖恼轮兄v為大家具體講解有關(guān)問題的解決辦法。

我們?cè)趯W(xué)習(xí)PHP語(yǔ)言的時(shí)候,通常都會(huì)各個(gè)函數(shù)的用法比較模糊,很那去一一的掌握。但是我們又必須要掌握這些函數(shù)。下面我們就為大家詳細(xì)介紹有關(guān)PHP unset()函數(shù)的相關(guān)使用方法。#t#

PHP unset()函數(shù)是用來(lái)銷毀變量的,但很多時(shí)候,這個(gè)函數(shù)只把變量給銷毀了,內(nèi)存中存放的該變量的值仍然沒有銷毀,也就是沒能達(dá)到我們想要的釋放內(nèi)存的效果。這里我建議大家用 $變量=null 的方法來(lái)釋放其內(nèi)存。原因看了下面的就知道了。

以下是關(guān)于PHP unset()函數(shù)的幾點(diǎn)要點(diǎn):(以下均在windows環(huán)境下測(cè)試,php 2.5.9)

1. 該函數(shù)只有在變量值所占空間超過256字節(jié)長(zhǎng)的時(shí)候才會(huì)釋放內(nèi)存
2. 只有當(dāng)指向該值的所有變量(比如有引用變量指向該值)都被銷毀后,地址才會(huì)被釋放(也要執(zhí)行1的判斷)

下面給出例子代碼論證:

  1. < ?php  
  2. $test=str_repeat("1",256);  
  3. $s = memory_get_usage();   
  4. //改函數(shù)用來(lái)查看當(dāng)前所用內(nèi)存  
  5. unset($test);  
  6. $e = memory_get_usage();  
  7. echo ' 釋放內(nèi)存: '.($s-$e);   
  8. //輸出為272,但如果上面test變量改為
    $
    test=str_repeat("1",255),輸出則為0  
  9. ?> 

至于為什么是272而不是256,就不是很清楚了,不知道內(nèi)部是怎么處理的。

  1. < ?php  
  2. $test = str_repeat("1",256);  
  3. $p = &$test;  
  4. unset($test);  
  5. echo $p;   
  6. //輸出為256個(gè)1。如果上面改為unset($p)
    ,更不行了,echo $test 直接顯示為256個(gè)1  
  7. ?> 

也就是說內(nèi)存中賦給$a的值仍然存在??梢妘nset()并沒達(dá)到釋放內(nèi)存的效果。

但如果在上述代碼中加入$test=null,或者再加一個(gè)unset($p),就能達(dá)到釋放內(nèi)存效果了,PHP unset()函數(shù)測(cè)試代碼如下:

變量賦值為null方法:

  1. < ?php  
  2. $test = str_repeat("1",256);  
  3. $p = &$test;  
  4. $s = memory_get_usage();   
  5. $test = null;  
  6. unset($test);  
  7. $e = memory_get_usage();  
  8. echo ' 釋放內(nèi)存: '.($s-$e); 
  9. //輸出為272  
  10. var_dump($p); //輸出為NULL  
  11. ?> 

 

將指向該地址中值的變量全部銷毀的方法:

  1. < ?php  
  2. $test = str_repeat("1",256);  
  3. $p = &$test;  
  4. $s = memory_get_usage();   
  5. //注意,以下2個(gè)unset()順序?qū)φ{(diào)沒
    有關(guān)系,不影響結(jié)果  
  6. unset($p);  
  7. unset($test);   
  8. $e = memory_get_usage();  
  9. echo ' 釋放內(nèi)存: '.($s-$e); //輸出為272  
  10. ?> 

 

到此PHP unset()函數(shù)論證完畢。

責(zé)任編輯:曹凱 來(lái)源: 百度博客
相關(guān)推薦

2009-12-09 17:07:08

PHP unset全局

2009-12-09 17:37:36

PHP函數(shù)isset(

2009-11-16 16:31:56

PHP數(shù)組刪除

2011-07-12 17:06:43

PHP

2011-12-15 09:00:51

PHP 7

2020-08-19 15:30:04

PHP網(wǎng)絡(luò)安全代碼

2009-11-18 14:11:10

PHP數(shù)組變量

2009-12-11 09:22:28

2009-12-01 13:35:41

PHP函數(shù)ini_ge

2009-11-17 09:32:32

PHP數(shù)值函數(shù)

2011-06-15 15:36:19

PHP變量常量

2009-12-07 14:44:27

PHP文件函數(shù)

2009-12-09 16:28:32

PHP路徑函數(shù)

2009-12-08 11:10:20

PHP GD庫(kù)函數(shù)

2009-12-08 19:24:09

PHP函數(shù)索引

2009-11-18 10:22:14

PHP substr

2009-12-11 17:45:09

PHP Math函數(shù)

2013-07-26 14:59:13

2009-11-25 09:56:06

PHP數(shù)組處理函數(shù)

2009-12-11 17:39:47

PHP String函
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)