× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

PHP trails - Tìm hiểu các thông tin cơ bản

12/09/2023 01:31

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. Tìm hiểu thêm về PHP trails ngay trong bài viết sau

PHP - Đặc điểm 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ậy điều gì sẽ xảy ra nếu một lớp cần kế thừa nhiều hành vi? Đặc điểm OOP giải quyết vấn đề này.

Các đặc điểm được sử dụng để khai báo các phương thức có thể được sử dụng trong nhiều lớp. Các đặc điểm 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 truy cập nào (công khai, riêng tư hoặc được bảo vệ).

Đặc điểm được khai báo bằng từ khóa đặc điểm:

Cú phápNhận máy chủ PHP của riêng bạn

SyntaxGet your own PHP Server
<?php
trait TraitName {
  // some code...
}
?>
To use a trait in a class, use the use keyword:

Syntax
<?php
class MyClass {
  use TraitName;
}
?>
Let's look at an example:

Example
<?php
trait message1 {
public function msg1() {
    echo "OOP is fun! ";
  }
}

class Welcome {
  use message1;
}

$obj = new Welcome();
$obj->msg1();
?>


Ví dụ giải thích
Ở đây, chúng tôi khai báo một đặc điểm: message1. Sau đó, chúng ta tạo một lớp: Chào mừng. Lớp sử dụng đặc điểm đó và tất cả các phương thức trong đặc điểm đó sẽ có sẵn trong lớp.

Nếu các lớp khác cần sử dụng hàm msg1(), bạn chỉ cần sử dụng đặc điểm message1 trong các lớp đó. Điều này làm giảm sự trùng lặp mã vì không cần phải khai báo lại cùng một phương thức.

 

PHP - Sử dụng nhiều đặc điểm
Hãy xem một ví dụ khác:

Ví dụ


PHP - Using Multiple Traits

Let's look at another example:

Example

<?php
trait message1 {
  public function msg1() {
    echo "OOP is fun! ";
  }
}

trait message2 {
  public function msg2() {
    echo "OOP reduces code duplication!";
  }
}

class Welcome {
  use message1;
}

class Welcome2 {
  use message1, message2;
}

$obj = new Welcome();
$obj->msg1();
echo "<br>";

$obj2 = new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>


Ví dụ giải thích
Ở đây, chúng ta khai báo hai đặc điểm: message1 và message2. Sau đó, chúng ta tạo hai lớp: Welcome và Welcome2. Lớp đầu tiên (Chào mừng) sử dụng đặc điểm message1 và lớp thứ hai (Chào mừng2) sử dụng cả đặc điểm message1 và message2 (nhiều đặc điểm được phân tách bằng dấu phẩy).