PHP Classes – Khái niệm, tính năng và hướng dẫn sử dụng

PHP là một ngôn ngữ lập trình phổ biến được sử dụng cho các ứng dụng web. Nó hỗ trợ khái niệm lập trình hướng đối tượng (OOP) và các lớp PHP là một phần quan trọng của OOP. Trong bài viết này, chúng ta sẽ tìm hiểu về khái niệm PHP Classes, cách thức hoạt động và tính năng của chúng.

Lập Trình Viên mời bạn cùng tham khảo chi tiết nội dung bên dưới. Bài viết này nằm trong chuyên đề hướng dẫn PHP từ cơ bản đến nâng cao tại dự án Phát Triển Website.

Object-Oriented Programming / OOPs

Lập trình hướng đối tượng (OOP) là một khái niệm lập trình phổ biến, nơi mọi thứ được coi như là một đối tượng, và sau đó chúng ta triển khai phần mềm bằng cách sử dụng các đối tượng khác nhau này. Ví dụ: trong một trường học, tất cả học sinh, giảng viên, nhân viên quản trị, v.v. có thể được xem là các đối tượng thuộc loại trường học.

Một số thuật ngữ liên quan đến OOPs và PHP Classes (lớp):

  • Lớp: Đây là kiểu dữ liệu được định nghĩa bởi người dùng kết hợp giữa các biến, dữ liệu cục bộ và các hàm.
  • Đối tượng: Đây là các trường hợp cục bộ được tạo ra bởi nhà phát triển để truy cập nội dung của lớp.
  • Biến thành viên: Đây không phải là gì khác ngoài các biến được định nghĩa trong một lớp và chỉ có thể được truy cập bởi các chức năng thành viên.
  • Hàm thành viên: Đây không phải là gì khác ngoài các chức năng được định nghĩa trong một lớp và thường được sử dụng để truy cập đối tượng dữ liệu.
  • Kế thừa: Đây là một trong những thuộc tính chính của lập trình hướng đối tượng, trong đó các tính năng và thuộc tính của một lớp vượt trội được truyền cho một lớp con. Lớp con kế thừa hàm thành viên và các biến có mặt trong lớp cha.
  • Lớp cha: Lớp chính thường kế thừa một số đặc tính và thuộc tính của nó sang lớp con hoặc lớp khác. Loại lớp này còn được gọi là superclass hoặc base class.
  • Lớp con: Lớp con kế thừa một số đặc tính và thuộc tính của lớp cha hoặc lớp khác. Loại lớp này còn được gọi là subclass hoặc derived class.
  • Đa hình: Đây là một trong những khái niệm căn bản của lập trình hướng đối tượng, nơi một chức năng duy nhất có thể được sử dụng cho các mục đích khác nhau. Trong đó, tên của chức năng không thay đổi, nhưng đối số có thể khác nhau.
  • Quá tải: Đây là một loại đa hình, nơi một lớp chức năng duy nhất được quá tải với các hình thức triển khai khác nhau phụ thuộc vào các loại đối số cụ thể, hoặc chúng ta có thể quá tải cùng một loại chức năng bằng các triển khải khác.

Định nghĩa PHP Classes

PHP Classes là một cấu trúc dữ liệu đặc biệt cho phép bạn tổ chức mã của mình theo hướng đối tượng. Nó bao gồm các biến và hàm thành viên, giúp bạn quản lý mã của bạn ở mức độ cao hơn. Để định nghĩa một lớp PHP, bạn có thể sử dụng cú pháp sau:

class ClassName {
// Code goes here
}

Trong đó, ClassName được sử dụng để đặt tên cho lớp của bạn và chứa các biến và hàm thành viên của lớp.

$this Keyword

Trong PHP, $this là một từ khóa đại diện cho đối tượng hiện tại của lớp. Nó chỉ đến đối tượng được tạo ra từ lớp và được sử dụng để truy cập các thành viên của đối tượng như biến thành viên và hàm thành viên. Ví dụ:

class Person {
  public $name;

  function setName($name) {
    $this->name = $name;
  }
}

$person = new Person;
$person->setName("John Doe");
echo $person->name; // Output: John Doe

Ở ví dụ trên, $this được sử dụng để truy cập giá trị của biến thành viên $name của đối tượng $person.

Tạo đối tượng trong PHP để truy cập lớp

Để truy cập biến và hàm thành viên của lớp trong PHP, bạn cần tạo một đối tượng từ lớp đó. Để tạo đối tượng, bạn sử dụng từ khóa new. Ví dụ:

class Person {
  public $name;

  function setName($name) {
    $this->name = $name;
  }
}

$person = new Person;
$person->setName("John Doe");
echo $person->name; // Output: John Doe

Ở ví dụ trên, $person là một đối tượng của lớp Person, được tạo bằng từ khóa new. Sau đó, chúng ta gọi hàm setName() của lớp Person trên đối tượng $person để thiết lập giá trị cho biến thành viên $name, sau đó in ra giá trị đó.

Constructors

Một constructor là một phương thức đặc biệt được gọi tự động khi một đối tượng được tạo. Nó được sử dụng để khởi tạo các giá trị ban đầu cho các biến thành viên của lớp và có thể được định nghĩa bằng cách sử dụng phương thức có tên là __construct(). Ví dụ:

class Person {
  public $name;

  function __construct($name) {
    $this->name = $name;
  }

  function getName() {
    return $this->name;
  }
}

$person = new Person("John Doe");
echo $person->getName(); // Output: John Doe

Ở ví dụ trên, chúng ta đã định nghĩa một constructor với tham số $name, được sử dụng để khởi tạo giá trị của biến thành viên $name. Sau đó, chúng ta gọi hàm getName() của lớp Person trên đối tượng $person để lấy giá trị của biến thành viên $name.

Destructors

Một destructor là một phương thức đặc biệt được gọi tự động khi một đối tượng không còn được sử dụng và bị xoá khỏi bộ nhớ. Nó được sử dụng để thực hiện các tác vụ cuối cùng trên đối tượng trướckhi bị xoá khỏi bộ nhớ và có thể được định nghĩa bằng cách sử dụng phương thức có tên là __destruct(). Ví dụ:

class Person {
  public $name;

  function __construct($name) {
    $this->name = $name;
  }

  function __destruct() {
    echo "Object destroyed.";
  }

  function getName() {
    return $this->name;
  }
}

$person = new Person("John Doe");
echo $person->getName(); // Output: John Doe
unset($person); // Output: Object destroyed.

Ở ví dụ trên, chúng ta đã định nghĩa một destructor bằng cách sử dụng phương thức __destruct(). Khi đối tượng $person không còn được sử dụng, nó sẽ bị xoá khỏi bộ nhớ và phương thức __destruct() sẽ được gọi để thực hiện các tác vụ cuối cùng.

Tính năng của PHP Classes là gì?

PHP Classes cung cấp nhiều tính năng hữu ích để giúp bạn quản lý mã của mình theo cách hướng đối tượng. Một số tính năng chính của PHP Classes bao gồm:

  • Encapsulation: PHP Classes cho phép bạn bao gồm tất cả các biến thành viên và hàm thành viên trong một đối tượng duy nhất, giúp che giấu chi tiết triển khai của lớp và bảo vệ dữ liệu của bạn khỏi các thay đổi bất ngờ.
  • Inheritance: PHP Classes cho phép bạn kế thừa các tính năng và thuộc tính của một lớp vượt trội sang một lớp con, giúp giảm thiểu mã lặp lại và tăng tính tổ chức của mã của bạn.
  • Polymorphism: PHP Classes cho phép bạn sử dụng một hàm duy nhất cho các mục đích khác nhau, tùy thuộc vào các đối số được truyền vào. Điều này giúp tăng tính linh hoạt của mã của bạn và giảm thiểu mã lặp lại.
  • Abstraction: PHP Classes cho phép bạn giấu chi tiết triển khai của dữ liệu trong lớp, chỉ hiển thị những thông tin cần thiết cho phía bên ngoài. Điều này giúp bảo vệ mã của bạn khỏi các thay đổi không mong muốn và giảm thiểu sự phức tạp của mã.
  • Overloading: PHP Classes cho phép bạn quá tải cùng một loại hàm với các triển khai khác nhau, giúp tăng tính linh hoạt của mã của bạn và giảm thiểu mã lặp lại.

Tổng quan về PHP Classes

Trong bài viết này, chúng ta đã tìm hiểu về khái niệm lớp PHP, cách thức hoạt động và tính năng của chúng. Chúng ta đã xem xét những thuật ngữ liên quan như biến thành viên, hàm thành viên, kế thừa, đa hình, quá tải và đóng gói dữ liệu.

Chúng ta cũng đã tìm hiểu về cách định nghĩa lớp trong PHP, sử dụng từ khóa $this để truy cập các thành viên của đối tượng và cách tạo đối tượng để truy cập lớp.

Ngoài ra, chúng ta đã xem xét hai phương thức đặc biệt là constructor và destructor, và tính năng của PHP Classes bao gồm đóng gói, kế thừa, đa hình, trừu tượng và quá tải.

PHP Classes là một phần quan trọng của lập trình hướng đối tượng trong PHP và được sử dụng rộng rãi trong các ứng dụng web để tăng tính tổ chức, giảm thiểu mã lặp lại và tăng tính linh hoạt của mã. 

Ví dụ sử dụng PHP Classes

Trong lập trình hướng đối tượng, PHP Classes là một khuôn mẫu đại diện cho một thực thể trong thế giới thực. PHP Classes định nghĩa các thuộc tính và phương thức của thực thể.

Trong PHP, một lớp được khai báo bằng từ khóa class. Ví dụ:

class Person {

    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }

    public function sayHello() {
        echo "Xin chào, tôi là $this->name, năm nay tôi $this->age tuổi.";
    }
}

Lớp Person có hai thuộc tính là nameage. Lớp này cũng có một phương thức sayHello().

Để tạo một đối tượng từ một lớp, chúng ta sử dụng từ khóa new. Ví dụ:

$person = new Person("John Doe", 30);

Đối tượng person hiện có hai thuộc tính là nameage. Giá trị của các thuộc tính này là John Doe30.

Để truy cập các thuộc tính và phương thức của một đối tượng, chúng ta sử dụng dấu hai chấm (.). Ví dụ:

echo $person->name; // "John Doe"

$person->sayHello(); // "Xin chào, tôi là John Doe, năm nay tôi 30 tuổi."

Lớp là một công cụ mạnh mẽ giúp chúng ta viết mã PHP dễ đọc và dễ bảo trì hơn. Lớp giúp chúng ta tổ chức mã thành các đơn vị có thể tái sử dụng.

Dưới đây là một số lợi ích của việc sử dụng lớp trong PHP:

  • Tổ chức mã: Lớp giúp chúng ta tổ chức mã thành các đơn vị có thể tái sử dụng. Điều này làm cho mã dễ đọc và dễ bảo trì hơn.
  • Độ bảo mật: Lớp giúp chúng ta bảo vệ dữ liệu bằng cách sử dụng truy cập theo quyền hạn.
  • Tính tái sử dụng: Lớp có thể được sử dụng trong nhiều dự án khác nhau. Điều này giúp chúng ta tiết kiệm thời gian và công sức.