Xét rằng:thử nghiệm cho giá trị NULL trong một biến mà có thể không được thiết lập
- Các isset() cấu trúc trả về TRUE nếu một biến được thiết lập và không phải là NULL
- Chức năng is_null() ném một cảnh báo nếu biến là chưa được đặt
Có cách nào để kiểm tra xem biến có tồn tại hay không, dù NULL hay không, không sử dụng toán tử @ để chặn thông báo?
EDIT
Cùng với trả lời đầu tiên của bạn, tôi đã suy nghĩ về vấn đề này và tôi nhận được kết luận rằng kiểm tra get_defined_vars() là cách duy nhất để phân biệt giữa một bộ biến NULL và biến chưa được đặt. PHP dường như làm cho sự phân biệt nhỏ:
<?php
$exists_and_is_null = NULL;
// All these are TRUE
@var_dump(is_null($exists_and_is_null));
@var_dump(is_null($does_not_exist));
@var_dump($exists_and_is_null===NULL);
@var_dump($does_not_exist===NULL);
@var_dump(gettype($exists_and_is_null)=='NULL');
@var_dump(gettype($does_not_exist)=='NULL');
?>
Đọc câu hỏi này một vài lần ... những gì anh ấy đang tìm kiếm là không rõ ràng và khó hơn rất nhiều so với lần xuất hiện đầu tiên. –