中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何銷毀PHP中的對象

發布時間:2021-09-14 09:42:01 來源:億速云 閱讀:172 作者:柒染 欄目:編程語言

今天就跟大家聊聊有關如何銷毀PHP中的對象,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

PHP中銷毀對象的方法:1、給對象變量賦值NULL,語法“$obj = null;”;2、使用unset()函數銷毀對象,語法“unset($obj);”。

本教程操作環境:windows7系統、PHP7.1版,DELL G3電腦

PHP中銷毀對象的方法

方法1:給對象變量賦值NULL

當對象沒有被引用時就會被銷毀,因此可以為其賦值NULL

示例:有這么一個對象:

<?php
header("Content-type:text/html;charset=utf-8");
class Human {   
  public $name = '張三';   
  public $gender = null;   
  public function __destruct() {   
      echo '走了!<br />';   
  }   
}   
$obj = new Human();  
var_dump($obj);
?>

輸出結果:

如何銷毀PHP中的對象

給對象變量$obj賦值NULL,銷毀對象

$obj = null;
var_dump($obj);

輸出結果:

如何銷毀PHP中的對象

方法2:使用unset()函數銷毀對象

示例1:

<?php
class Human {   
  public $name = '張三';   
  public $gender = null;   
  public function __destruct() {   
      echo '走了!<br />';   
  }   
}   
$a = new Human();   
$b = $c = $d = $a;  
unset($a);    
echo $b->name; //輸出張三
echo '<hr />'; //先輸出換行線再輸出走了    析構函數是在線上觸發還是線下觸發?
?>

答案:

$b = $c = $d = $a;默認引用傳值,四個變量指向同一處內存,unset的時候對象還是被其它三個變量使用,所以對象并沒有被銷毀,所以析構函數是在線下觸發的(代碼執行完了,內存自動釋放)

如何銷毀PHP中的對象

示例2:

<?php
class Human { 
  public $name = '張三'; 
  public $gender = null; 
   
  public function __destruct() { 
      echo '走了!<br />'; 
  } 
} 
$e = $f = $g = new Human(); 
unset($e); 
unset($f); 
unset($g); 
echo '<hr />'; //同樣的問題: 析構函數是在線上觸發還是線下觸發?
?>

在代碼運行完自動釋放內存之前由于對象已經沒有被任何變量引用所以就自動釋放了內存....答案是在線上觸發

看完上述內容,你們對如何銷毀PHP中的對象有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

黑龙江省| 南通市| 道真| 新宾| 连州市| 墨竹工卡县| 台山市| 翼城县| 高邑县| 柘荣县| 且末县| 合肥市| 柞水县| 托克托县| 四子王旗| 稷山县| 阳新县| 商水县| 白朗县| 天全县| 商洛市| 东光县| 任丘市| 斗六市| 阿荣旗| 伊吾县| 沾益县| 涪陵区| 周宁县| 垣曲县| 隆化县| 会同县| 黄大仙区| 汝南县| 绥化市| 色达县| 铜鼓县| 陇南市| 朝阳市| 固始县| 巫溪县|