Trong bài ngay hôm nay, chúng ta sẽ tìm hiểu cách thức hoạt động của Public, Protected và Private của OOP [Lập trình hướng đối tượng] trong PHP.
1. Mô hình tổng quan
Public: Các đối tượng bên ngoài có thể gọi hàm và biến trong class, hỗ trợ sự kế thừa.: Các đối tượng bên ngoài có thể gọi hàm và biến trong class, hỗ trợ sự kế thừa.
Protected: Các đối tượng bên ngoài không thể gọi được biến và hàm trong class, hỗ trợ sự kế thừa.: Các đối tượng bên ngoài không thể gọi được biến và hàm trong class, hỗ trợ sự kế thừa.
Private : Không cho các đối tượng bên ngoài gọi biến và hàm trong class, không hỗ trợ kế thừa. : Không cho các đối tượng bên ngoài gọi biến và hàm trong class, không hỗ trợ kế thừa.
2. Thí dụ trực quan:
2.1. Public:Giống như cái nhà mà không có cửa vậy, ai cần gì cứ việc vào lấy
Theo ví dụ dưới đây, ta có:
Viết một class cha có tên Person.Person.
Đặt public cho hai biến $name và $agepublic cho hai biến $name và $age
Khởi tạo hàm tạo và các hàm get/set cho từng biến.get/set cho từng biến.
Viết lớp con có tên Female kế thừa lớp cha PersonFemale kế thừa lớp cha Person
Thêm biến $local và khởi tạo giống lớp cha Person$local và khởi tạo giống lớp cha Person
Khởi tạo đối tượng bên ngoài gọi đến hàm intro[] bên trong lớp con để in ra giá trị.intro[] bên trong lớp con để in ra giá trị.
DOCTYPE html>
Document
Kết quả:2.2. ProtectedCổng nhà và cửa nhà đều khóa, trừ người bên trong, người bên ngoài không được lấy dùng cái gì trong nhà
- Thực hiện sửa public ở các biến của class Person và Female thành protectedpublic ở các biến của class Person và Female thành protected
protected $name;
protected $age;
protected $local;
//Gọi đối tượng từ bên ngoài
$female = new female["Lan", "30", "Ha Noi"];
$female->name;
$female->local;
Chú ý, đặt chú thích cho lệnh kiểm tra lớp cha xong mới kiểm tra sang lớp con.- Chú ý, đặt chú thích cho lệnh kiểm tra lớp cha xong mới kiểm tra sang lớp con.
DOCTYPE html>
Document
Kết quả:2.3. PrivateBây giờ thì nhà của bố mẹ chỉ có bố mẹ được ở, con + người ngoài không được thừa kế bất cứ cái gì nhé
- Thực hiện sửa protected ở các biến của class Person thành privateprotected ở các biến của class Person thành private
private $name;
private $age;
private $local;
Thực hiện gọi từ bên ngoài- Thực hiện gọi từ bên ngoài
DOCTYPE html>
Document
Kết quả: Cách làm tương tự với các hàm, khi bạn muốn giấu một hàm nào đó không cho bên ngoài sử dụng thì chỉ đơn giản gắn thuộc tính private cho nó là xong.hàm, khi bạn muốn giấu một hàm nào đó không cho bên
ngoài sử dụng thì chỉ đơn giản gắn thuộc tính private cho nó là xong.Lấy ví dụ ở class Female ở trên, ta gắn private cho hàm intro[] :private cho hàm intro[] :
private function intro[]
{
echo "Tên: {$this->name}
Tuổi: {$this->age}
Địa chỉ: {$this->local}";
}
- Thực hiện gọi như sau:
$female = new Female['Lan', '30', 'Ha Noi'];
$female->intro[];
Kết quả: Như vậy, trong lập trình hướng đối tượng chúng ta có 3 mức bảo vệ hàm và biến: Public, Protected và Private.
Hiểu được cách thức cũng như cơ chế hoạt động của 3 thuộc tính này trong PHP để thao tác với biến và hàm linh hoạt và thông minh hơn nhé!
Cảm ơn đã xem và hẹn gặp lại trong những bài viết sau!
𝔑𝔥ậ𝔱 𝔏𝔞𝔪