Trước đây để khởi tạo mới một đối tượng thì bắt buộc ta phải khai báo class trước, điều này rất rõ ràng nhưng lại không đáp ứng được một số trường hợp trong thực tế, vì vậy Anonymous Classes ra đời.
Để phân biệt class thông thường và Anonymous Class thì trước tiên chúng ta tìm hiểu cú pháp class thông thường đã nhé.
1. Tạo class các phiên bản trước PHP7
Dưới đây là một ví dụ tạo và sử dụng class trong các phiên bản trước PHP7.
class Animal{ function show($message) { echo $message; } } $animal = new Animal(); $animal->show('Đây là động vật hoang dã! - kiso.vn');
Chạy ví dụ lên sẽ xuất hiện dòng chữ “Đây là động vật hoang dã! – kiso.vn“. Điều này quá bình thường rồi, nhưng bạn hãy xem ví dụ ở phần 2 dưới đây.
Bài viết này được đăng tại [kiso.vn]
2. Anonymous Classes trong PHP7
Với ví dụ ở phần 1 trên thì mình sẽ viết lại dưới dạng Anonymous Class như sau:
$animal = new class{ function show($message) { echo $message; } }; $animal->show('Đây là động vật hoang dã! - kiso.vn');
Chạy lên kết quả cũng không thay đổi gì. Như vậy để khai báo một Anonymous Class thì ta dùng cú pháp sau:
new class{ // Danh sách methods };
3. Một số ví dụ Anonymous Class trong PHP7
Sau đây là một số ví dụ cách sử dụng Anonymous Class rất hay mà bạn nên biết.
Sử dụng là một tham số
// Class con class Dog{ public $animal; function setAnimal($animal) { $this->animal = $animal; } } // Class con với tham số truyền vào là một Anonynous Class $dog = new Dog(); $dog->setAnimal(new class { function show($message) { echo $message; } }); $dog->animal->show('Đây là con cờ hó!');
Anonymous Class có kế thừa
class Animal{ function eat($meal){ } } $dog = new class extends Animal{ function eat($meal){ echo 'Con chó đang ăn trưa với món ' . $meal; } }; $dog->eat('Sốt cà chua');
Nếu bạn đã từng tìm hiêu qua Anonymous function trong jQuery hoặc trong PHP thì sẽ thấy nó rất dễ hiều.
4. Ưu điểm và nhược điểm của Anonymous Class
Ưu điểm: Việc sử dụng Anonymous Class cũng có những ưu điểm và nhược điểm. Cá nhân mình nhận thấy khi ban khởi tạo một Anonymous Class thì tốc độ xử lý sẽ nhanh hơn bởi bộ nhớ chỉ lưu trữ một lần cho class đó mà thôi. Ngoài ra chúng ta có thể tạo class một cách nhanh chóng không mất nhiều thời gian.
Nhược điểm: Việc sử dụng Anonymous Class chỉ dùng cho những trường hợp xử lý đơn giản bởi nó không có tính chất tái sử dụng, thứ hai nữa là khó nâng cấp và bảo trì đối với những thể loại này.
5. Lời kết
Như vậy một Anonymous Class thực chất là cách khai báo và sử dụng nhanh một class, khi sư dụng cách này bạn sẽ không có tính mở rộng mà chỉ mang tính chất sử dụng tạm thời, vì vậy phải cân nhắc khi sử dụng loại class này. Tuy nhiên trong một số trường hợp Anonymous Class lại được sử dụng vì tính nhanh gọn của nó.
Danh sách file tải về
Tên file tải về | Pass giải nén |
---|---|
Tải bài học định dạng PDF | kiso.vn hoặc gameportable.net |
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Tạo class các phiên bản trước PHP72. Anonymous Classes...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Tạo class các phiên bản trước PHP72. Anonymous Classes trong PHP73. Một số ví dụ Anonymous Class trong PHP7Sử dụng là một tham sốAnonymous Class có kế thừa4. Ưu điểm và nhược điểm...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Tạo class các phiên bản trước PHP72. Anonymous Classes trong PHP73. Một số ví dụ Anonymous Class trong PHP7Sử dụng là một tham sốAnonymous Class có kế thừa4. Ưu điểm và nhược điểm...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Tạo class các phiên bản trước PHP72. Anonymous Classes trong PHP73. Một số ví dụ Anonymous Class trong PHP7Sử dụng là một tham sốAnonymous Class có kế thừa4. Ưu điểm và nhược điểm...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Tạo class các phiên bản trước PHP72. Anonymous Classes trong PHP73. Một số ví dụ Anonymous Class trong PHP7Sử dụng là một tham sốAnonymous Class có kế thừa4. Ưu điểm và nhược điểm...