Rumah >pembangunan bahagian belakang >masalah PHP >Apakah kaedah untuk memusnahkan objek dalam PHP

Apakah kaedah untuk memusnahkan objek dalam PHP

青灯夜游
青灯夜游asal
2021-09-13 18:01:222914semak imbas

Kaedah untuk memusnahkan objek dalam PHP: 1. Berikan NULL kepada pembolehubah objek dengan sintaks "$obj = null;" 2. Gunakan fungsi unset() untuk memusnahkan objek dengan sintaks "unset( $obj);".

Apakah kaedah untuk memusnahkan objek dalam PHP

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

Memusnahkan objek dalam Kaedah PHP

Kaedah 1: Berikan NULL kepada pembolehubah objek

Apabila objek tidak dirujuk, ia akan dimusnahkan, jadi ia boleh diberikan nilai NULL

Contoh: Terdapat objek sedemikian:

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

Hasil keluaran:

Apakah kaedah untuk memusnahkan objek dalam PHP

Tetapkan NULL kepada pembolehubah objek $obj dan musnahkannya Objek

$obj = null;
var_dump($obj);

Hasil keluaran:

Apakah kaedah untuk memusnahkan objek dalam PHP

Kaedah 2: Gunakan fungsi unset() untuk musnahkan objek

Contoh 1:

<?php
class Human {   
  public $name = &#39;张三&#39;;   
  public $gender = null;   
  public function __destruct() {   
      echo &#39;走了!<br />&#39;;   
  }   
}   
$a = new Human();   
$b = $c = $d = $a;  
unset($a);    
echo $b->name; //输出张三
echo &#39;<hr />&#39;; //先输出换行线再输出走了    析构函数是在线上触发还是线下触发?
?>

Jawapan:

$b = $c = $d = $a;Secara lalai, empat pembolehubah menghala ke memori yang sama apabila tidak ditetapkan, objek masih digunakan oleh tiga pembolehubah lain, jadi objek Ia belum dimusnahkan, jadi pemusnah dicetuskan di luar talian (kod dilaksanakan dan memori dilepaskan secara automatik)

Apakah kaedah untuk memusnahkan objek dalam PHP

Contoh 2:

<?php
class Human { 
  public $name = &#39;张三&#39;; 
  public $gender = null; 
   
  public function __destruct() { 
      echo &#39;走了!<br />&#39;; 
  } 
} 
$e = $f = $g = new Human(); 
unset($e); 
unset($f); 
unset($g); 
echo &#39;<hr />&#39;; //同样的问题: 析构函数是在线上触发还是线下触发?
?>

Sebelum kod melepaskan memori secara automatik selepas dijalankan, objek tidak lagi dirujuk oleh mana-mana pembolehubah, jadi memori dilepaskan secara automatik.... Jawapannya adalah untuk mencetuskan dalam talian

Apakah kaedah untuk memusnahkan objek dalam PHP

Pembelajaran yang disyorkan: " Tutorial video PHP

Atas ialah kandungan terperinci Apakah kaedah untuk memusnahkan objek dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn