Trong dự án của tôi, tôi có một lớp bọc cho $_SESSION
, do đó, các biến phiên có thể được truy cập bởi $session->var
. Tôi đã cố gắng để kiểm tra xem các biến session được thiết lập hoặc không sử dụng isset
:
if (!isset($this->session->idUser)) {
...
}
nhưng isset
không được trở về bất cứ điều gì. Vì vậy, trong lớp wrapper của tôi, tôi đã viết hàm sau đây để kiểm tra những gì đang diễn ra.
public function isItSet($var)
{
die(isset($_SESSION["id"]));
}
kết quả này ở trang trống. Tôi đã thử:
public function isItSet($var)
{
die(is_null(isset($_SESSION["id"])));
}
vẫn là trang trống. Sau đó, tôi đã cố gắng:
public function isItSet($var)
{
die(isset($_SESSION));
}
này trả về 1.
bất cứ ai có thể cho tôi biết tại sao cố gắng để kiểm tra xem một biến session được thiết lập trở lại không có gì?
Bạn có nhớ session_start(); ? Mặc dù nó có vẻ tầm thường, bạn nên chắc chắn. – Repox
Yup, phiên được bắt đầu trong hàm tạo của lớp cha. die (session_id) trả về một chuỗi như dự định. – Jormundir
Sử dụng 'var_dump' thay vì' die' hoặc 'echo'. Trong PHP một boolean 'false' được chuyển thành chuỗi (trong trường hợp của bạn cho đầu ra) sẽ được chuyển thành một chuỗi rỗng. 'var_dump' sẽ hiển thị cho bạn giá trị và loại thực tế. Đó chỉ là PHP cơ bản, hãy làm cho bản thân bạn thoải mái với ngôn ngữ đầu tiên. – hakre