Artikel berikut menyediakan garis besar tentang PHP unset(). Operasi utama kaedah unset() adalah untuk memusnahkan pembolehubah yang ditentukan sebagai hujah input untuknya. Dalam erti kata lain, ia melakukan operasi set semula pada pembolehubah yang dipilih. Walau bagaimanapun, tingkah lakunya boleh berbeza-beza bergantung pada jenis pembolehubah yang disasarkan untuk dimusnahkan. Fungsi ini disokong oleh versi PHP4 dan seterusnya.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Sintaks PHP unset()
unset(mixed $selectedvar, mixed $selectedvar1,….., mixed $selectedvarN): void
Diberikan di bawah adalah kes yang berbeza:
Apabila pembolehubah tempatan diserahkan kepada fungsi tidak ditetapkan, fungsi itu menetapkan semula pembolehubah.
Contoh:
Kod:
<?php $input = "I have value!!!"; echo "The value of 'input' before unset: " . $input . "<br>"; unset($input); //Applying unset() method on $input variable echo "The value of 'input' after unset: " . $input; ?>
Output:
Nilai yang terkandung dalam 'input' pembolehubah dimusnahkan semasa melaksanakan kaedah unset().
Apabila pengguna cuba menggunakan Unset untuk pembolehubah dalam fungsi dan ia juga ditakrifkan sebagai pembolehubah global, maka unset() menetapkan semula pembolehubah setempat sahaja. Yang global kekal tidak terjejas.
Contoh:
Kod:
<?php function Afunction() { $Avariable = 'local value'; echo "Within the function scope before unset: ".$Avariable."<br>"; global $Avariable; unset($Avariable); //Deletes the local ‘Avariable’ echo "Within the function scope after unset: ".$Avariable."<br>"; } $Avariable = 'Global Value'; //The global ‘Avariable’ echo "Out of the function scope before unset: ".$Avariable."<br>"; Afunction(); echo "Out of the function scope after unset: ".$Avariable."<br>"; ?>
Output:
Versi tempatan pembolehubah 'Avariable' dimusnahkan manakala versi global kekal utuh.
Jika pembolehubah dalam fungsi juga diisytiharkan sebagai pembolehubah global dan pengguna perlu memusnahkan pembolehubah global, maka ia boleh dicapai menggunakan tatasusunan[$GLOBAL].
Contoh:
Kod:
<?php function Afunction() { $Avariable = 'local value'; echo "Within the function scope before unset: ".$Avariable."<br>"; global $Avariable; unset($GLOBALS['Avariable']); //Resets the global ‘Avariable’ echo "Within the function scope after unset: ".$Avariable."<br>"; } $Avariable = 'Global Value'; echo "Out of the function scope before unset: ".$Avariable."<br>"; Afunction(); echo "Out of the function scope after unset: ".$Avariable."<br>"; ?>
Output:
Versi tempatan pembolehubah 'Avariable' tidak dipengaruhi oleh pelaksanaan fungsi yang tidak ditetapkan manakala versi global pembolehubah ditetapkan kepada nilai nol.
Jika unset() dipanggil pada pembolehubah yang dihantar ke fungsi sebagai rujukan, unset() hanya menetapkan semula yang setempat. Contoh pembolehubah dalam persekitaran panggilan kekal seperti sedia ada.
Contoh:
Kod:
<?php function Afunction(&$Avariable) //’Avariable’ is the pass by reference { $Avariable = 'Internal value'; echo "Within the function scope before unset: ".$Avariable."<br>"; unset($Avariable); //Resets the local ‘Avariable’ echo "Within the function scope after unset: ".$Avariable."<br>"; } $Avariable = 'External Value'; echo "Out of the function scope before unset: ".$Avariable."<br>"; Afunction($Avariable); echo "Out of the function scope after unset: ".$Avariable."<br>"; ?>
Output:
Kaedah unset() yang dipanggil dalam pass by reference variable 'Avariable' hanya menetapkan semula kandungan pembolehubah dalam skop setempat tanpa menjejaskan kandungan dari skop luaran.
Apabila pembolehubah statik ditetapkan sebagai argumen input kepada kaedah unset(), pembolehubah akan ditetapkan semula untuk perintah yang tinggal dalam skop fungsi selepas fungsi unset() dipanggil.
Contoh:
Kod:
<?php function UnsetStatic() { static $staticvar; $staticvar++; echo "Before unset() method is called: $staticvar"."<br>"; //Deletes ‘staticvar’ only for the below commands within the scope of this ‘UnsetStatic’ function unset($staticvar); echo "after unset() method is called: $staticvar"."<br>"; } UnsetStatic(); UnsetStatic(); UnsetStatic(); ?>
Output:
Pembolehubah 'staticvar' ditetapkan semula hanya untuk arahan yang diikuti selepas kaedah unset() dipanggil.
Aplikasi kaedah unset() pada elemen tatasusunan memadamkan elemen daripada tatasusunan tanpa mempamerkan operasi pengindeksan semula.
Contoh:
Kod:
<?php $arrayinput = [0 => "first", 1 => "second", 2 => "third"]; Echo "The array elements, before unset:"."<br>"; Echo $arrayinput[0]." ". $arrayinput[1]." ". $arrayinput[2]." "."<br>"; //Unset operation is called on the second element of the array ‘arrayinput’ unset($arrayinput[1]); Echo "The array elements, after unset:"."<br>"; Echo $arrayinput[0]." ". $arrayinput[1]." ". $arrayinput[2]." "; ?>
Output:
Kaedah unset() menyokong pemadaman berbilang pembolehubah serentak.
Contoh:
Kod:
<?php $input1 = "I am value1"; $input2 = "I am value2"; $input3 = "I am value3"; echo "The value of 'input1' before unset: " . $input1 . "<br>"; echo "The value of 'input2' before unset: " . $input2 . "<br>"; echo "The value of 'input3' before unset: " . $input3 . "<br>"; echo "<br>"; //Reseting input1, input2 and input3 together in single command unset($input1,$input2,$input3); echo "The value of 'input1' after unset: " . $input1."<br>"; echo "The value of 'input2' after unset: " . $input2."<br>"; echo "The value of 'input3' after unset: " . $input3."<br>"; ?>
Output:
Nota: Penghantaran (tidak ditetapkan) tidak sama dengan fungsi unset(). (unset)casting hanya digunakan sebagai cast jenis NULL manakala kaedah unset() mengubah pembolehubah. unset() ialah binaan bahasa dan oleh itu tidak disokong oleh fungsi pembolehubah. kaedah unset() boleh digunakan untuk menetapkan semula sifat objek yang boleh dilihat dalam skop semasa kecuali pembolehubah '$this' dalam mana-mana kaedah objek. Untuk melaksanakan operasi tidak ditetapkan pada sifat objek yang tidak boleh diakses dalam skop semasa, kaedah lebihan beban __unset() perlu diisytiharkan dan dipanggil.Atas ialah kandungan terperinci PHP tidak ditetapkan(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!