PHP Interceptor ialah mekanisme sambungan PHP yang boleh memintas dan mengubah suai tingkah laku masa jalan PHP. Pemintas biasa termasuk __construct(), __destruct(), __get(), dsb. Artikel ini akan memperkenalkan penggunaan unset(), pemintas yang biasa digunakan dalam PHP.
unset() ialah fungsi penting dalam PHP, digunakan untuk memadam pembolehubah, tetapi dalam sesetengah senario, kami tidak boleh memadam pembolehubah secara langsung, seperti sifat objek. Pada masa ini, anda perlu menggunakan pemintas unset() untuk melaksanakan fungsi memadam atribut objek.
Dalam PHP, jika anda ingin memadamkan atribut objek, anda boleh menggunakan fungsi unset(), contohnya:
class Person { public $name = 'Tom'; public function __unset($property) { echo "Deleting property '" . $property . "'\n"; unset($this->$property); } } $person = new Person(); unset($person->name);
Dalam kod di atas, kami mencipta kelas Orang dan menentukan nama atribut . Dalam kelas, kami menggunakan kaedah __unset() untuk memintas pemadaman atribut, dan mengeluarkan nama atribut yang dipadamkan dalam kaedah ini, dan akhirnya menggunakan fungsi unset() untuk memadamkan atribut.
Walaupun hanya terdapat satu atribut dalam contoh ini, dalam pembangunan sebenar, kita selalunya perlu memadamkan berbilang atribut Pada masa ini, kita boleh menggunakan pernyataan suis dalam kaedah __unset() untuk menentukan nama atribut kepada dipadamkan, contohnya :
class Person { public $name = 'Tom'; public $age = 20; public function __unset($property) { switch ($property) { case 'name': echo "Deleting property 'name'\n"; unset($this->name); break; case 'age': echo "Deleting property 'age'\n"; unset($this->age); break; default: echo "Property '" . $property . "' not found\n"; break; } } } $person = new Person(); unset($person->name); unset($person->age); unset($person->address);
Dalam kod di atas, kami menambahkan atribut $age baharu dan menambah pernyataan suis dalam kaedah __unset() untuk memadamkan berbilang atribut. Jika nama atribut yang hendak dipadamkan tidak wujud, mesej gesaan yang sepadan akan dikeluarkan.
Perlu diambil perhatian bahawa jika kaedah __unset() digunakan dalam kelas, pastikan anda menggunakan fungsi unset() apabila memadamkan atribut, jika tidak PHP akan melaporkan ralat.
Selain memadamkan atribut objek, pemintas unset() juga boleh digunakan untuk memadamkan pembolehubah global. Contoh:
function test() { global $name; $name = 'Tom'; } function __unset($name) { echo "Deleting global variable '" . $name . "'\n"; unset($GLOBALS[$name]); } test(); unset($name);
Dalam kod di atas, kami mentakrifkan kaedah test(), gunakan kata kunci global untuk mentakrifkan pembolehubah $name sebagai pembolehubah global dan berikan nilai 'Tom'. Dalam kaedah __unset(), kami menggunakan pernyataan gema untuk mengeluarkan nama pembolehubah global yang akan dipadamkan, dan menggunakan fungsi unset() untuk memadamkan pembolehubah. Akhir sekali, kami memanggil fungsi unset() untuk memadam pembolehubah $name, dan kaedah __unset() akan dilaksanakan.
Ringkasan
Pemintas PHP ialah mekanisme yang sangat praktikal yang boleh memintas dan mengubah suai gelagat PHP pada masa jalan. Artikel ini memperkenalkan penggunaan unset(), pemintas biasa dalam pemintas PHP, yang boleh digunakan untuk memadam sifat objek dan pembolehubah global. Apabila menggunakan pemintas unset(), pastikan anda menggunakan fungsi unset() untuk memadam pembolehubah, jika tidak PHP akan melaporkan ralat.
Atas ialah kandungan terperinci Penggunaan pemintas PHP tidak ditetapkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!