Traits là gì? Ví dụ cụ thể về trait

Lượt xem: 2301

Traits là gì?

PHP chỉ hỗ trợ kế thừa đơn: một lớp con chỉ có thể kế thừa từ một lớp cha duy nhất.

Vì vậy, điều gì sẽ xảy ra nếu một lớp cần kế thừa nhiều hành vi? OOP Traits giải quyết vấn đề này.

Traits được sử dụng để khai báo các phương thức có thể được sử dụng trong nhiều lớp.

Traits có thể có các phương thức và phương thức trừu tượng có thể được sử dụng trong nhiều lớp và các phương thức có thể có bất kỳ công cụ sửa đổi quyền truy cập nào (public, private hoặc protected)

Traits được khai báo với từ khóa trait:


 <?php
trait TraitName {
  // some code...
}
?> 


Để sử dụng một trait trong một lớp, hãy sử dụng từ khóa use:


 <?php
class MyClass {
  use TraitName;
}

?> 


Ví dụ cụ thể:


 <?php
class TongHieu {
   	 public function Tong($a,$b) {
        return $a + $b;
 	   }
		public function Hieu($a,$b){
		return $a-$b;
		}
}
 trait TichThuong{
	public function Tich($a,$b) {
			return $a * $b;
		   }
	public function Thuong($a,$b){
		return $a/$b;
	}

}
class TinhToan extends TongHieu{
	use TichThuong;
}
$tinhtoan= new TinhToan();
//Tong
echo "Tong:".$tinhtoan->Tong(4,5);

//Hieu
echo "Hieu:".$tinhtoan->Hieu(4,5);
//Tich
echo "Tich:".$tinhtoan->Tich(4,5);
//Thuong
echo "Thuong:".$tinhtoan->Thuong(4,5);


?>