2012-07-19 31 views
11

Tôi đang di chuyển một hệ thống kế thừa mà tôi không tạo từ một máy chủ (php 5.2) sang một máy chủ mới hơn (php 5.3) và rất nhiều hệ thống sử dụng session_unregister. Tôi đánh giá cao điều này bây giờ không được chấp nhận trong 5.3 vì vậy tôi nên đi trước và thay thế tất cả các trường hợp với unset ($ _ SESSION ['myVar']) hoặc điều này sẽ gây ra một cái gì đó để phá vỡ?Thay thế session_unregister bằng unset()

Thậm chí tốt hơn, là có một sự thay thế mà đạt được các chức năng tương tự mà tôi yêu cầu, nếu unset() không phải là đúng một

+5

+1 để loại bỏ chức năng phản đối. 'unset ($ _ SESSION ['key'])' sẽ ổn. –

Trả lời

13

Bạn có thể bỏ đặt phiên cụ thể vars sử dụng unset($_SESSION['yourvar']);, nhưng tâm trí phần này từ hướng dẫn :

KHÔNG unset các $ _SESSION toàn với unset ($ _ sESSION) vì điều này sẽ vô hiệu hóa các tên đăng ký lưu của các biến phiên qua superglobal $ _SESSION .

(từ: http://php.net/manual/en/function.session-unset.php)

+0

Cảm ơn bạn, đã bỏ đặt() cách tốt nhất để làm điều đó? (Chỉ muốn chắc chắn rằng tôi không thay thế mã xấu có nhiều mã xấu hơn) – Andy

+1

Vâng, đó là: lưu ý trên sách hướng dẫn thậm chí gợi ý nó, ngay phía trên phần cảnh báo màu vàng. – Nanne

+0

Cảm ơn ... Tôi đã đọc lại bản tin và bắt được nó. Bình luận đã bị xóa. Đối với nho khô kích động: Tôi đã đặt một liên kết tới wiki không dùng nữa của dự án PHP cho thấy "unset cast" đã không còn được dùng nữa, nhưng không phải là hàm unset(). Nanne đã chỉ ra lỗi của tôi và tôi đã xóa nhận xét trước đó mà anh ta đã trả lời. –