PHP - Biến cố định trong lớp: Hướng dẫn cho người mới bắt đầu

Xin chào các bạn đang học lập trình PHP! Hôm nay, chúng ta sẽ cùng khám phá thế giới của các biến cố định trong lớp PHP. Đừng lo lắng nếu bạn mới bắt đầu; tôi sẽ hướng dẫn bạn từng bước, giống như tôi đã làm cho hàng trăm học sinh trong những năm dạy học của mình. Vậy, hãy lấy một tách cà phê (hoặc trà, nếu bạn thích), và chúng ta cùng bắt đầu!

PHP - Class Constants

什么是类常量?

Trước khi chúng ta đi vào chi tiết, hãy hiểu qua về biến cố định trong lớp là gì. Hãy tưởng tượng bạn đang xây dựng một ngôi nhà (lớp PHP của bạn). Bạn cần một số尺寸 cố định không thay đổi, chẳng hạn như chiều cao của trần nhà. Đó chính xác là những gì các biến cố định trong PHP - các giá trị cố định liên quan đến một lớp mà không thay đổi.

Tại sao sử dụng biến cố định?

  1. Chúng cung cấp một cách để xác định các giá trị cố định trong một lớp.
  2. Chúng dễ đọc và dễ bảo trì hơn so với việc sử dụng các số hoặc chuỗi ma thuật.
  3. Chúng có thể được truy cập mà không cần tạo một thể hiện của lớp.

Bây giờ, hãy xem chúng ta có thể tạo và sử dụng các biến cố định như thế nào.

Ví dụ về biến cố định trong lớp

Hãy bắt đầu với một ví dụ đơn giản. Giả sử chúng ta đang tạo một lớp để đại diện cho một hình tròn.

class Circle {
    const PI = 3.14159;

    private $radius;

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

    public function calculateArea() {
        return self::PI * $this->radius * $this->radius;
    }
}

// Sử dụng biến cố định
echo Circle::PI; // Xuất: 3.14159

// Tạo một hình tròn và tính diện tích của nó
$myCircle = new Circle(5);
echo $myCircle->calculateArea(); // Xuất: 78.53975

Hãy phân tích điều này:

  1. Chúng ta xác định một biến cố định PI bằng cách sử dụng từ khóa const trong lớp Circle.
  2. Chúng ta có thể truy cập biến cố định này bằng cách sử dụng self::PI trong các phương thức của lớp.
  3. Ngoài lớp, chúng ta có thể truy cập nó bằng cách sử dụng Circle::PI.
  4. Phương thức calculateArea() sử dụng biến cố định này để tính diện tích của hình tròn.

Biến cố định như biểu thức

Trong PHP 5.6 và sau này, bạn có thể sử dụng biểu thức cố định để xác định các biến cố định trong lớp. Điều này có nghĩa là bạn có thể sử dụng các phép toán hoặc thậm chí các biến cố định khác để xác định một biến cố định mới. Hãy xem một ví dụ:

class MathConstants {
    const PI = 3.14159;
    const TAU = self::PI * 2;
    const HALF_PI = self::PI / 2;
}

echo MathConstants::TAU;    // Xuất: 6.28318
echo MathConstants::HALF_PI; // Xuất: 1.570795

Trong ví dụ này, chúng ta đang xác định TAUHALF_PI dựa trên giá trị của PI. Điều này rất hữu ích khi bạn có các biến cố định liên quan đến nhau.

Modifiers khả năng truy cập của biến cố định trong lớp

Bắt đầu từ PHP 7.1, bạn có thể sử dụng các modifiers khả năng truy cập với các biến cố định trong lớp. Điều này cho phép bạn kiểm soát khả năng truy cập của các biến cố định, tương tự như bạn làm với các thuộc tính và phương thức. Hãy xem một ví dụ:

class Seasons {
    public const SPRING = 'Spring';
    protected const SUMMER = 'Summer';
    private const AUTUMN = 'Autumn';
    const WINTER = 'Winter'; // Không có modifier, mặc định là public

    public function getSummer() {
        return self::SUMMER;
    }

    private function getAutumn() {
        return self::AUTUMN;
    }
}

$seasons = new Seasons();

echo Seasons::SPRING; // Tốt, nó là public
echo Seasons::WINTER; // Cũng tốt, nó là public mặc định
echo $seasons->getSummer(); // Tốt, truy cập biến cố định bảo vệ qua phương thức public
// echo Seasons::SUMMER; // Điều này sẽ gây ra lỗi, SUMMER là bảo vệ
// echo Seasons::AUTUMN; // Điều này sẽ gây ra lỗi, AUTUMN là riêng tư

Hãy phân tích các modifiers khả năng truy cập:

  1. public: Có thể truy cập từ bất kỳ đâu.
  2. protected: Chỉ có thể truy cập trong lớp và các lớp con.
  3. private: Chỉ có thể truy cập trong lớp itself.

Nếu không có modifier được chỉ định, biến cố định sẽ là public mặc định.

Các tình huống thực tế sử dụng biến cố định trong lớp

Bây giờ chúng ta đã hiểu cách biến cố định trong lớp hoạt động, hãy xem một số tình huống thực tế nơi chúng có thể rất hữu ích:

  1. Thiết lập cấu hình:

    class DatabaseConfig {
        const HOST = 'localhost';
        const USERNAME = 'root';
        const PASSWORD = 'secretpassword';
        const DATABASE = 'myapp';
    }
  2. Mã lỗi:

    class ErrorCodes {
        const NOT_FOUND = 404;
        const SERVER_ERROR = 500;
        const UNAUTHORIZED = 401;
    }
  3. Cấu trúc kiểu enum:

    class UserRoles {
        const ADMIN = 'admin';
        const EDITOR = 'editor';
        const SUBSCRIBER = 'subscriber';
    }

Các nguyên tắc tốt và lời khuyên

  1. Sử dụng chữ IN HOA: Đó là quy ước để đặt tên các biến cố định bằng chữ IN HOA với dấu gạch dưới cho các khoảng trống.
  2. Đừng lạm dụng: Mặc dù các biến cố định rất hữu ích, đừng lạm dụng chúng. Sử dụng chúng cho các giá trị thực sự cố định.
  3. Tài liệu hóa: Luôn thêm注释 để giải thích biến cố định của bạn đại diện cho điều gì, đặc biệt nếu mục đích của chúng không rõ ràng từ tên.

Kết luận

Và thế là bạn đã có nó, các bạn! Chúng ta đã cùng nhau khám phá qua thế giới của các biến cố định trong lớp PHP. Từ việc sử dụng cơ bản đến các modifiers khả năng truy cập, bạn bây giờ đã có các công cụ để sử dụng các biến cố định hiệu quả trong các lớp PHP của mình. Nhớ rằng, các biến cố định giống như nền móng của ngôi nhà - chúng mang lại sự ổn định và nhất quán cho mã của bạn.

Trong hành trình PHP tiếp theo của bạn, bạn sẽ tìm thấy nhiều tính năng thú vị khác để khám phá. Nhưng hiện tại, hãy tự награ cho mình vì đã thành thạo các biến cố định trong lớp. Hãy tiếp tục lập trình, tiếp tục học hỏi, và quan trọng nhất, hãy vui vẻ khi làm việc đó!

Chúc các bạn lập trình vui vẻ, các nhà lập trình PHP tương lai! ??‍??‍?

Credits: Image by storyset