Nhiều Trait trong OOP PHP
Trong một lớp, bạn có thể sử dụng không chỉ một mà nhiều
trait. Đây chính là điểm thể hiện ưu thế của chúng
so với kế thừa. Các trait cần sử dụng
trong lớp có thể được chỉ định cách nhau bằng dấu phẩy
sau từ khóa use.
Hãy xem một ví dụ. Giả sử chúng ta có hai trait. Trait thứ nhất:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
Trait thứ hai:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
Sử dụng các trait của chúng ta trong một lớp:
<?php
class User
{
use Helper1, Helper2; // kết nối các trait
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Tạo 3 trait với tên là Trait1,
Trait2 và Trait3. Hãy để trong trait đầu tiên
có phương thức method1, trả về
1, trong trait thứ hai - phương thức method2,
trả về 2, và trong trait thứ ba
- phương thức method3, trả về 3.
Hãy để tất cả các phương thức này là private.
Tạo lớp Test, sử dụng
tất cả ba trait đã tạo của chúng ta. Tạo trong
lớp này một phương thức public getSum,
trả về tổng kết quả của các phương thức từ các trait đã kết nối.