Hướng dẫn dùng sleep spells trong PHP

Tiếp tục với series bài hôm nay chúng ta sẽ tìm hiểu về __sleep() và __wakeup() magic methods trong PHP.

1, __sleep().

-Phương thức __sleep() sẽ được gọi khi chúng ta thực hiện serialize() đối tượng. 

-Thông thường khi chúng ta serialize() một đối tượng thì nó sẽ trả về tất cả các thuộc tính trong đối tượng đó. Nhưng nếu sử dụng __sleep() thì chúng ta có thể quy định được các thuộc tính có thể trả về.

-Chú ý: phương thức __sleep() luôn trả về giá trị là một mảng.

Cú pháp:

public function __sleep()
{
    return ['property1', 'property2', ..., 'propertyn'];
}

Trong đó: property1,property2,... là các thuộc tính sẽ được trả về khi serialize() đối tượng.

VD:

-Như các bạn đã thấy: Khi chúng ta serialize() thì nó chỉ trả về các thuộc tính mà chúng ta quy định trong phương thức __sleep() và ở đây cự thể là name.

2, __wakeup().

-Phương thức __wakeup() sẽ được gọi khi chúng ta unserialize() đối tượng.

-Chúng thường được sử dụng để thực thi một hoặc nhiều hành động nào đó khi đối tượng được unserialize().

Cú Pháp:

public function __wakeup()
{
    //code
}

VD:

name;
    }

    /**
     * gọi hàm getName khi unserialize()
     */
    public function __wakeup()
    {
        $this->getName();
    }
}

unserialize(serialize(new ConNguoi()));
//Kết quả: Vũ Thanh Tài.

-Như các bạn đã thấy thì hàm getName sẽ được gọi khi chúng ta unserialize() đối tượng ConNguoi.

3, Lời kết.

-Qua phần này mình hy vọng mọi người sẽ hiểu hơn về __sleep()__wakeup() magic methods trong PHP, phần tiếp theo chúng ta sẽ tìm hiểu về __toString() và __invoke().

Đăng ký nhận tin.

Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!

Bài Viết Mới