Hướng dẫn PHP

TRANG CHỦ PHP Giới thiệu PHP Cài đặt PHP Cú pháp PHP Nhận xét PHP Các biến PHP PHP Echo / Print Các kiểu dữ liệu PHP Chuỗi PHP Số PHP Toán PHP Hằng số PHP Toán tử PHP PHP If ... Else ... Elseif Chuyển đổi PHP Vòng lặp PHP Các hàm PHP Mảng PHP PHP Superglobals PHP RegEx

Biểu mẫu PHP

Xử lý biểu mẫu PHP Xác thực biểu mẫu PHP Yêu cầu biểu mẫu PHP URL biểu mẫu PHP / E-mail Hoàn thành biểu mẫu PHP

PHP nâng cao

Ngày và giờ trong PHP Bao gồm PHP Xử lý tệp PHP Mở / Đọc tệp PHP Tạo / ghi tệp PHP Tải lên tệp PHP Cookie PHP Phiên PHP Bộ lọc PHP Bộ lọc PHP nâng cao Các chức năng gọi lại trong PHP PHP JSON Ngoại lệ PHP

PHP OOP

PHP OOP là gì Các lớp / đối tượng PHP Trình tạo PHP PHP Destructor Công cụ sửa đổi quyền truy cập PHP Kế thừa PHP Hằng số PHP Các lớp trừu tượng trong PHP Giao diện PHP Đặc điểm PHP Phương thức tĩnh trong PHP Thuộc tính tĩnh của PHP Không gian tên PHP Lặp lại PHP

Cơ sở dữ liệu MySQL

Cơ sở dữ liệu MySQL MySQL Connect MySQL Tạo cơ sở dữ liệu MySQL Tạo bảng MySQL Chèn dữ liệu MySQL Nhận ID cuối cùng MySQL Chèn Nhiều MySQL được chuẩn bị Dữ liệu chọn MySQL MySQL ở đâu MySQL Đặt hàng bởi MySQL Xóa dữ liệu Dữ liệu cập nhật MySQL Dữ liệu giới hạn MySQL

PHP XML

Trình phân tích cú pháp XML PHP Trình phân tích cú pháp PHP SimpleXML PHP SimpleXML - Nhận PHP XML Expat DOM XML PHP

PHP - AJAX

Giới thiệu về AJAX AJAX PHP Cơ sở dữ liệu AJAX AJAX XML Tìm kiếm trực tiếp AJAX Cuộc thăm dò ý kiến ​​của AJAX

Ví dụ về PHP

Ví dụ về PHP Trình biên dịch PHP PHP Quiz Bài tập PHP Chứng chỉ PHP

Tham chiếu PHP

Tổng quan về PHP Mảng PHP Lịch PHP Ngày PHP Thư mục PHP Lỗi PHP Ngoại lệ PHP Hệ thống tập tin PHP Bộ lọc PHP FTP PHP PHP JSON Từ khóa PHP PHP Libxml Thư PHP Toán PHP PHP Misc PHP MySQLi Mạng PHP Kiểm soát đầu ra PHP PHP RegEx PHP SimpleXML Luồng PHP Chuỗi PHP Xử lý biến PHP Trình phân tích cú pháp XML PHP PHP Zip Múi giờ PHP

PHP OOP - Đặc điểm


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ì 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 đ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 quyền truy cập nào (công khai, riêng tư hoặc bảo vệ).

Các đặc điểm được khai báo với trait từ khóa:

Cú pháp

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

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

Cú pháp

<?php
class MyClass {
  use TraitName;
}
?>

Hãy xem một ví dụ:

Thí dụ

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

class Welcome {
  use message1;
}

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

Giải thích ví dụ

Ở đây, chúng tôi khai báo một đặc điểm: message1. Sau đó, chúng tôi 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 (), 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ã, bởi 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 xét một ví dụ khác:

Thí dụ

<?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();
?>

Giải thích ví dụ

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