Rumah > Artikel > pembangunan bahagian belakang > Apakah kaedah untuk memusnahkan objek dalam PHP
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);".
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 = '张三'; public $gender = null; public function __destruct() { echo '走了!<br />'; } } $obj = new Human(); var_dump($obj); ?>
Hasil keluaran:
Tetapkan NULL kepada pembolehubah objek $obj dan musnahkannya Objek
$obj = null; var_dump($obj);
Hasil keluaran:
Kaedah 2: Gunakan fungsi unset() untuk musnahkan objek
Contoh 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 />'; //先输出换行线再输出走了 析构函数是在线上触发还是线下触发? ?>
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)
Contoh 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 />'; //同样的问题: 析构函数是在线上触发还是线下触发? ?>
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
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!