Chào các bạn, ở bài trước chúng ta đã tìm hiểu về Magic method trong PHP. Ở bài học này, tôi cùng các bạn đi tìm hiểu về clone trong PHP.
Nội dung chính
- Cách sử dụng từ khóa clone
- Tại sao không sử dụng phép gán = mà lại sử dụng clone
- Ý nghĩa của clone
Clone là một từ khóa trong PHP, cho phép nhân bản một đối tượng có sẵn mà không cần phải khởi tạo đối tượng mới.
1. Cách sử dụng.
Để sử dụng clone, ta sử dụng cú pháp sau
$object2 = clone $object1;
#Ví dụ 1.
Ở ví dụ trên các bạn thấy, đối tượng $object2 của chúng ta được clone từ đối tượng $object1.
Cho nên nó hoàn toàn có thể sử dụng lại toàn bộ những thuộc tính và phương thức của $object1, mà không cần khởi tạo lại.
Kết quả ta được là Phạm Kỳ Khôi
Phạm Kỳ Khôi
2. Tại sao không sử dụng phép gán = mà lại sử dụng clone
Đây cũng là thắc mắc của rất nhiều bạn khi tìm hiểu về clone trong PHP. Vậy tại sao không sử dụng phép gán bằng mà lại sử dụng clone ?
Đơn giản là như thế này: Khi các bạn sử dụng $object2 = $object1, nếu một trong hai đối tượng này thay đổi thì đối tượng kia cũng thay đổi theo. Còn khi các bạn sử dụng clone thì các đối tượng thay đổi không phụ thuộc vào nhau, mà nó mang tính độc lập.
#Ví dụ 2
Download source code
Ở đây, tôi sử dụng phép gán bằng cho đối tượng là $object1 và $object2. Nên các thuộc tính và phương thức của $object1 bị thay đổi bởi $object2.
Kết quả là Phạm Kỳ Khôi
Phạm Kỳ Khiêm
# Ví dụ 3
Thay vì sử dụng phép gán, lúc này tôi sử dụng từ khóa clone
Download source code
Tiếp tục, thực hiện lại ví dụ 2 ở trên. Nhưng lúc này, chúng ta sử dụng từ khóa clone để nhân bản đổi tượng $object1.
Ta thấy ở $object2, mặc dù đã thay đổi các thuộc tính và phương thức của class nhưng vẫn không ảnh hưởng gì đến $object1.
Kết quả ta được vẫn là Phạm Kỳ Khôi
Phạm Kỳ Khôi
3. Ý nghĩa của từ khóa clone.
Qua các ví dụ trên. Cho thấy, việc sử dụng từ khóa clone trong PHP cho phép ta hoàn toàn có thể tạo ra một đối tượng mới từ đối tượng có sẵn. Mà không ảnh hướng hay làm mất đi dữ liệu của đối tượng ban đầu.
Việc không phải khởi tạo đối tượng, sẽ tiết kiệm bộ nhớ. Điều này giúp ứng dụng của chúng nhanh hơn.
Kết luận: Ở bài học này tôi đã giới thiệu cho các bạn về clone trong PHP . Ở bài tiếp theo tôi sẽ giới thiệu cho các bạn các kiến thức về class abstract trong PHP