Jika Anda ingin menghapus variabel maka Anda dapat menggunakan unset
unset($any_variable);
Memeriksa keberadaannya tidak ada manfaatnya saat mencoba menghapus variabel.
Jika variabel adalah array dan Anda ingin menghapus elemen, Anda harus memastikan induknya ada terlebih dahulu, ini juga berlaku untuk properti objek.
unset($undefined_array['undefined_element_key']);
unset($undefined_object->undefined_prop_name);
Ini mudah dipecahkan dengan membungkus unsetdalam if(isset($var)){ ... }blok.
if(isset($undefined_array)){
unset($undefined_array['undefined_element_key']);
}
if(isset($undefined_object)){
unset($undefined_object->undefined_prop_name);
}
Alasan kita hanya memeriksa variabel ( induk ) adalah karena kita tidak perlu memeriksa properti / elemen dan melakukannya akan jauh lebih lambat untuk menulis dan menghitung karena akan menambah pemeriksaan ekstra.
if(isset($array)){
...
}
if(isset($object)){
...
}
.vs
$object->prop_name = null;
$array['element_key'] = null;
if(isset($array) && array_key_exists('element_key', $array)){
...
}
if(isset($object) && property_exists($object, 'prop_name')){
...
}
if(isset($array) && $array['element_key'])){
...
}
if(isset($object) && $object->prop_name)){
...
}
Hal ini tidak perlu dikatakan lagi, tetapi penting juga bahwa Anda mengetahui typevariabel saat mendapatkan, menyetel dan membatalkan setelan elemen atau properti; menggunakan sintaks yang salah akan menimbulkan kesalahan.
Itu sama ketika mencoba untuk membatalkan nilai array atau objek multidimensi. Anda harus memastikan kunci / nama orang tua ada.
if(isset($variable['undefined_key'])){
unset($variable['undefined_key']['another_undefined_key']);
}
if(isset($variable->undefined_prop)){
unset($variable->undefined_prop->another_undefined_prop);
}
Ketika berhadapan dengan objek, ada hal lain yang perlu dipikirkan, yaitu visibilitas.
Hanya karena ada tidak berarti Anda memiliki izin untuk memodifikasinya.