Rumah >pembangunan bahagian belakang >masalah PHP >Apakah 2 cara untuk memusnahkan pembolehubah dalam php

Apakah 2 cara untuk memusnahkan pembolehubah dalam php

青灯夜游
青灯夜游asal
2021-09-24 19:44:573091semak imbas

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;" .

Apakah 2 cara untuk memusnahkan pembolehubah dalam php

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()

  • Pertama sekali, kita perlu tahu bahawa dalam PHP, nama pembolehubah disimpan dalam timbunan memori , yang menunjuk ke memori khusus dalam Alamat timbunan, cari memori dalam timbunan dengan nama pembolehubah; oleh itu kita boleh membuat kesimpulan:
  • $varname=nullHasilnya 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 &#39;死了!<br />&#39;; 
  } 
} 
$a = new Human(); 
$b = $c = $d = $a;
unset($a);
$d=null;


echo &#39;<hr />&#39;;
var_dump($a);
echo &#39;<hr />&#39;;
var_dump($b);
echo &#39;<hr />&#39;;
var_dump($c);
echo &#39;<hr />&#39;;
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: "

Tutorial Video PHP
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!

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