PHP Access Modifiers: A Beginner's Guide

Xin chào các bạnfuture PHP developers! Hôm nay, chúng ta sẽ cùng khám phá thế giới của các bộ修饰语 truy cập trong PHP. Đừng lo lắng nếu bạn chưa từng viết một dòng mã trước đây - tôi sẽ là người bạn thân thiện dẫn đường cho bạn trong hành trình này. Cuối cùng của bài hướng dẫn này, bạn sẽ sử dụng các bộ修饰语 truy cập như một chuyên gia!

PHP - Access Modifiers

What Are Access Modifiers?

Trước khi chúng ta bắt đầu, hãy hiểu bộ修饰语 truy cập là gì. Hãy tưởng tượng chúng như những bảo vệ an ninh cho mã của bạn. Chúng kiểm soát ai có thể xem và sử dụng các phần khác nhau của chương trình của bạn. Trong PHP, chúng ta có ba bộ修饰语 truy cập chính:

  1. Public
  2. Private
  3. Protected

Hãy cùng tìm hiểu chi tiết từng bộ修饰语.

Public Members

The Open Book

Các thành viên public giống như một cuốn sách mở - ai cũng có thể đọc và ai cũng có thể viết vào. Trong PHP, khi bạn khai báo một thứ là public, nó có nghĩa là nó có thể được truy cập từ bất kỳ đâu trong mã của bạn.

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

<?php
class Book {
public $title;

public function setTitle($newTitle) {
$this->title = $newTitle;
}
}

$myBook = new Book();
$myBook->title = "PHP for Beginners";
echo $myBook->title;  // Outputs: PHP for Beginners

$myBook->setTitle("Advanced PHP");
echo $myBook->title;  // Outputs: Advanced PHP
?>

Trong ví dụ này, $title là một thuộc tính public, và setTitle() là một phương thức public. Chúng ta có thể truy cập và sửa đổi $title trực tiếp, và chúng ta có thể gọi setTitle() từ bên ngoài lớp.

When to Use Public

Sử dụng public khi bạn muốn một thuộc tính hoặc phương thức có thể truy cập từ bất kỳ đâu trong mã của bạn. Nó rất tốt cho những thứ cần phải dễ dàng tiếp cận, nhưng hãy cẩn thận - quá nhiều quyền truy cập public có thể dẫn đến những thay đổi không mong muốn trong dữ liệu của bạn.

Private Members

The Secret Diary

Các thành viên private giống như một cuốn nhật ký bí mật - chỉ có chủ sở hữu (lớp本身的) có thể đọc hoặc viết vào. Khi bạn khai báo một thứ là private, nó chỉ có thể được truy cập trong cùng một lớp.

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

<?php
class Diary {
private $secretThought;

public function writeThought($thought) {
$this->secretThought = $thought;
}

public function readThought() {
return $this->secretThought;
}
}

$myDiary = new Diary();
$myDiary->writeThought("I love PHP!");
echo $myDiary->readThought();  // Outputs: I love PHP!

// This would cause an error:
// echo $myDiary->secretThought;
?>

Trong ví dụ này, $secretThought là private. Chúng ta không thể truy cập nó trực tiếp từ bên ngoài lớp, nhưng chúng ta có thể sử dụng các phương thức public writeThought()readThought() để tương tác với nó.

When to Use Private

Sử dụng private khi bạn muốn giấu đi các hoạt động bên trong của lớp. Nó rất tốt cho dữ liệu nhạy cảm hoặc các hoạt động phức tạp mà không nên bị can thiệp từ bên ngoài lớp.

Protected Members

The Family Album

Các thành viên protected giống như một album gia đình - chỉ có gia đình (lớp và các lớp con của nó) có thể thấy. Khi bạn khai báo một thứ là protected, nó có thể được truy cập trong cùng một lớp và bởi các lớp kế thừa từ nó.

Dưới đây là một ví dụ:

<?php
class Animal {
protected $species;

protected function setSpecies($species) {
$this->species = $species;
}
}

class Dog extends Animal {
public function woof() {
$this->setSpecies("Canine");
echo "Woof! I'm a " . $this->species;
}
}

$myDog = new Dog();
$myDog->woof();  // Outputs: Woof! I'm a Canine

// This would cause an error:
// echo $myDog->species;
?>

Trong ví dụ này, $speciessetSpecies() là protected. Lớp Dog có thể truy cập chúng vì nó kế thừa từ Animal, nhưng chúng ta không thể truy cập chúng trực tiếp từ bên ngoài các lớp này.

When to Use Protected

Sử dụng protected khi bạn muốn cho phép truy cập cho các lớp con nhưng vẫn giữ thành viên ẩn từ thế giới bên ngoài. Nó rất tốt cho việc tạo một lớp cơ sở với các chức năng chia sẻ có thể được mở rộng bởi các lớp cụ thể hơn.

Comparison of Access Modifiers

Dưới đây là bảng tóm tắt các khác biệt:

Access Modifier Class Subclass Outside
Public
Protected
Private

Conclusion

Và thế là bạn đã bước những bước đầu tiên vào thế giới của các bộ修饰语 truy cập trong PHP. Nhớ rằng:

  • Public là cho mọi người
  • Private chỉ cho lớp本身的
  • Protected là cho lớp và các lớp con

Trong hành trình tiếp tục của bạn với PHP, bạn sẽ thấy rằng việc sử dụng đúng các bộ修饰语 truy cập có thể làm cho mã của bạn an toàn hơn, tổ chức hơn và dễ bảo trì hơn. Đó giống như xây dựng một ngôi nhà - bạn muốn một số phòng mở cho khách, một số chia sẻ với gia đình, và một số chỉ cho riêng bạn.

Tiếp tục thực hành, và sớm bạn sẽ trở thành một chuyên gia về bộ修饰语 truy cập! Chúc các bạn may mắn với việc编码!

Credits: Image by storyset