Nếu bạn muốn hủy đặt một biến thì bạn có thể sử dụng unset
unset($any_variable);
Kiểm tra sự tồn tại của nó không có lợi khi cố gắng bỏ đặt một biến.
Nếu biến là một mảng và bạn muốn hủy đặt một phần tử, bạn phải đảm bảo rằng phần tử gốc tồn tại trước, điều này cũng áp dụng cho các thuộc tính đối tượng.
unset($undefined_array['undefined_element_key']);
unset($undefined_object->undefined_prop_name);
Điều này có thể dễ dàng giải quyết bằng cách gói unset
trong một if(isset($var)){ ... }
khối.
if(isset($undefined_array)){
unset($undefined_array['undefined_element_key']);
}
if(isset($undefined_object)){
unset($undefined_object->undefined_prop_name);
}
Lý do chúng tôi chỉ kiểm tra biến ( cha ) đơn giản là vì chúng tôi không cần kiểm tra thuộc tính / phần tử và làm như vậy sẽ chậm hơn rất nhiều để viết và tính toán vì nó sẽ thêm một lần kiểm tra.
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)){
...
}
Điều này không cần phải nói nhưng điều quan trọng là bạn phải biết type
về biến khi nhận, thiết lập và hủy thiết lập một phần tử hoặc thuộc tính; sử dụng sai cú pháp sẽ gây ra lỗi.
Tương tự khi cố gắng bỏ đặt giá trị của một mảng hoặc đối tượng nhiều chiều. Bạn phải đảm bảo rằng khóa / tên mẹ tồn tại.
if(isset($variable['undefined_key'])){
unset($variable['undefined_key']['another_undefined_key']);
}
if(isset($variable->undefined_prop)){
unset($variable->undefined_prop->another_undefined_prop);
}
Khi xử lý các đối tượng, có một điều khác phải nghĩ đến, đó là khả năng hiển thị.
Chỉ vì nó tồn tại không có nghĩa là bạn có quyền sửa đổi nó.