Rumah >pembangunan bahagian belakang >masalah PHP >Apakah 2 cara untuk memusnahkan pembolehubah dalam php
Dua cara untuk memusnahkan pembolehubah dalam PHP: 1. Gunakan fungsi unset(), dengan sintaks "unset($varname)"; 2. Berikan "NULL" kepada pembolehubah yang ditentukan, dengan sintaks "$ varname=null;" .
Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3
Pembolehubah PHP atau Pemusnahan objek boleh dibahagikan kepada pemusnahan eksplisit dan pemusnahan tersirat:
1 Pemusnahan eksplisit, apabila objek tidak dirujuk, ia akan dimusnahkan, jadi kita boleh menyahset atau menetapkan NULL kepadanya. ;
2. Pemusnahan tersirat ialah bahasa skrip Apabila baris terakhir kod dilaksanakan, semua memori yang digunakan mesti dikeluarkan.
Oleh itu, terdapat dua cara untuk. musnahkan pemboleh ubah. contoh:
Hasilnya adalah seperti berikut: unset()
$varname=null
Hasilnya ialah:
Jadi unset() tidak benar-benar dimusnahkan Nilai memori dalam pembolehubah hanya memotong hubungan antara pembolehubah dan memori, dan mengalih keluar nama pembolehubah, tetapi memori tidak akan dikeluarkan selagi ia masih dirujuk; PHP, nilai lalai objek ialah nilai rujukan, ini juga menerangkan bahawa dalam kelas Manusia, $a tidak ditetapkan(), tetapi $b =$c = $d masih mempunyai nilai.
, nama pembolehubah masih wujud, tetapi nilai memori telah dipadamkan. Jadi bagaimana pula dalam kes rujukan lewat? Contohnya:class Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '死了!<br />'; } } $a = new Human(); $b = $c = $d = $a; unset($a); $d=null; echo '<hr />'; var_dump($a); echo '<hr />'; var_dump($b); echo '<hr />'; var_dump($c); echo '<hr />'; var_dump($d);Hasil output ialah:
Notice: Undefined variable: a in /Library/WebServer/Documents/test.php on line 42 NULL object(Human)#1 (2) { ["name"]=> string(6) "张三" ["gender"]=> NULL } object(Human)#1 (2) { ["name"]=> string(6) "张三" ["gender"]=> NULL } NULL 死了!Jadi,
<?php $a = 1; $b = &$a; unset($a); var_dump($a); var_dump($b);, walaupun nama pembolehubah dan penuding memori masih wujud, nilai dalam memori dipadamkan sepenuhnya .
Pembelajaran yang disyorkan: "
Notice: Undefined variable: a in E:\amp\apache\htdocs\index.php on line 5 NULL int(1)"
Atas ialah kandungan terperinci Apakah 2 cara untuk memusnahkan pembolehubah dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!