Trong PHP không cho phép sử dụng đa kế thừa. Có nghĩa là một lớp con chỉ được kế thừa một lớp cha duy nhất mà thôi. Hơn nữa nếu như bạn muốn sử dụng nhiều phương thức trong nhiều Class khác nhau thì phải làm thế nào? Nếu sử dụng kế thừa thì không được, còn dùng Interface chỉ sử dụng khai báo phương thức mà thôi.
Một giải pháp khắc phục những vấn đề trên là sử dụng Trait. Vậy trait là gì? Và tại sao lại nên sử dụng nó? Bài viết sau đây mình sẽ giúp bạn hiểu thật chi tiết hơn.
Trait trong PHP là gì?
Từ phiên bản php 5.4 trait được giới thiệu tới cộng đồng lập trình viên trên thế giới. Với mục đích giải quyết những vấn đề tồn tại trước đó.
Lợi ích của trait đó chỉnh là giúp giảm sự trùng lặp của các đoạn code, gọn gàng và dễ dàng tái sử dụng.
Cách sử dụng Trait
Trait sử dụng hoàn toàn giống như class. Nó cũng có thuộc tính, phương thức và trừu tượng. Cũng dùng các public, private, protected.
Đầu tiên hãy xem đoạn mã kế thừa ở trong PHP:
<?php class People { public function eat() { echo 'Ăn cơm'; } } class Donaltrump extends People { public function eat() { echo 'Ăn thịt'; } } $people = new Donaltrump(); $people->eat();
Đây là trường hợp kế thừa, khi lớp con muốn kế thừa thì phải viết lại phương thức. Như vậy thì quả là phức tạp nếu như có hàm trăm method thì làm sao?
Còn với trait trong PHP thì như sau:
<?php trait People { public function eat() { echo 'Ăn cơm'; } } class Donaltrump { use People; } $people = new Donaltrump(); $people->eat();
Cách dùng khá đơn giản. Trait chỉ cần dùng từ khóa use gọi class vào thôi. Nếu có hàng trăm class thì chỉ cần dùng tương tự như vậy.
Đối với phương thức tĩnh
<?php trait People { public static function eat() { echo 'Ăn cơm'; } } class Donaltrump { use People; } Donaltrump::eat();
Nếu muốn sử dụng nhiều class chỉ cần use People, Exam;
Như vậy bài viết này chúng ta đã tìm hiểu về trait trong PHP. Nó khá đơn giản phải không nào?
Nguồn tham khảo: