Khoá học: Thiết lập dự án Wordpress

Nếu bạn đang tìm kiếm một cách nhanh chóng và hiệu quả để thiết lập một trang web cá nhân hoặc doanh nghiệp của mình, hãy bắt đầu với WordPress. Được coi là nền tảng quản lý nội dung (CMS) phổ biến nhất trên thế giới, WordPress cho phép bạn dễ dàng tạo ra một [...]

PHP Kế thừa nhiều lớp

– Đối với lập trình hướng đối tượng trong PHP, một lớp chỉ được phép kế thừa từ một lớp duy nhất, bạn không thể cho một lớp kế thừa nhiều lớp được.

– Tuy nhiên, trong trường hợp các bạn muốn kế thừa các thuộc tính & phương thức từ nhiều lớp khác nhau để sử dụng thì chúng ta có một giải pháp, đó là sử dụng Trait.

Trait là gì ?

– Tương tự như các lớp, Trait cũng có các thuộc tính, phương thức, phương thức trừu tượng. Chúng ta có thể dùng các từ khóa public, protected, private để chỉ định phạm vi truy cập của các thuộc tính, phương thức.

– Cách thức khai báo một Trait cũng giống như cách khai báo một lớp, nhưng thay vì sử dụng từ khóa class thì ta đổi lại thành từ khóa trait.

<?php
	trait info{
		public $name;
		public $year;
		function __construct($input_name; $input_year){
			$this->name = $input_name;
			$this->year = $input_year;
		}
	}
?>

Cách sử dụng Trait

– Để sử dụng một Trait trong lớp thì ta dùng từ khóa use với cú pháp như sau:

use TraitName;

– Lớp User sử dụng một Trait có tên là Info.

<?php
	trait Info{
		public $name;
		public $year;
		function __construct($input_name, $input_year){
			$this->name = $input_name;
			$this->year = $input_year;
		}
	}
	class User{
		use Info;
		function intro(){
			echo "Tôi tên {$this->name}, sinh năm {$this->year} !";
		}
	}
	$me = new User("Nhân", 1993);
	$me->intro();
?>

– Để sử dụng nhiều Trait trong một lớp thì ta ngăn cách giữa mỗi hai tên Trait bởi một dấu phẩy.

– Lớp User sử dụng hai Trait có tên là Info & Contact.

<?php
	trait Info{
		public $name;
		public $year;
		function __construct($input_name, $input_year){
			$this->name = $input_name;
			$this->year = $input_year;
		}
	}
	trait Contact{
		public $phone;
		public $email;
		function set_contact($input_phone, $input_email){
			$this->phone = $input_phone;
			$this->email = $input_email;	
		}
	}
	class User{
		use Info, Contact;
		function intro(){
			echo "Tôi tên {$this->name}, sinh năm {$this->year}<br>";
			echo "Thông tin liên hệ:<br>";
			echo "- Phone: {$this->phone}<br>";
			echo "- Email: {$this->email}";
		}
	}
	$me = new User("Nhân", 1993);
	$me->set_contact("0123456789", "[email protected]");
	$me->intro();
?>

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *