Share Sử dụng Trait trong PHP

filiallion

Administrator
Staff member
Administrator
Messages
585
Points
10
Language
Tiếng Việt
Các bạn đã biết PHP là ngôn ngữ lập trình đơn kế thừa, không cho phép kế thừa nhiều lớp khác, đây là một hạn chế không nhỏ khi lập trình ứng dụng web. Tuy nhiên, từ phiên bản PHP 5.4 trở đi thì PHP đã bổ sung thêm thành phần gọi là Trait để giúp giải quyết vấn đề đa kế thừa, giúp các lớp có thể kế thừa sử dụng các phương thức ở các Trait khác.

Trait cũng tương tự như một lớp abstract, cũng được định nghĩa với các phương thức thực hiện những nhiệm vụ nào đó và các phương thức này có thể được sử dụng ở các lớp khác có sử dụng Trait được khai báo, một điều quan trọng nữa là Trait không thể được khởi tạo. Với khả năng này của Trait, các bạn có thể thấy nó khá giống với đa kế thừa, giúp giải quyết được nhiều vấn đề liên quan mà đơn kế thừa không giải quyết được. Để sử dụng Trait hiệu quả, các bạn nên định nghĩa các phương thức thực hiện cùng một nhóm chức năng vào một Trait, điều này giúp cho việc quản lý Trait hiệu quả hơn.

Để định nghĩa một Trait, các bạn có thể thực hiện theo mẫu sau:
Code:
trait Tên_trait
{}
Ví dụ tôi định nghĩa trait User như sau:
PHP:
trait User
{
    public function getUsername()
    {
        return 'filiallion';
    }
}
Bây giờ, ở một lớp nào đó các bạn có thể sử dụng trait User như ví dụ sau:
PHP:
class Member
{
    use User;
    
    public function getAccount()
    {
        return $this->getUsername();
    }
}
Các bạn có thể sử dụng nhiều Trait trong lớp như sau:
PHP:
use User, UserProfile;
Các bạn có thể tìm hiểu thêm về Trait trong PHP tại địa chỉ https://www.php.net/manual/en/language.oop5.traits.php.
 
Back
Top