Hướng dẫn php protected

Tiếp tục chuỗi Series về lập trình hướng đối tượng [OOP] trong PHP hôm nay chúng ta sẽ tìm hiểu về 3 phạm vi giới hạn quyền truy cập đó là Public, Private và Protected.

Sau khi đọc xong bài viết sẽ biết cách sử dụng Public, Private và Protected nhanh chóng. Đồng thời cũng áp dụng cho các dự án PHP của mình trong tương lai hiệu quả hơn.

  • Public trong PHP
  • Protected trong PHP
  • Private trong PHP

Public là quyền truy cập mặc định mọi nơi. Có thể từ lớp đó, lớp kế thừa và ngoài lớp.

Ví dụ:

Sau khi chạy lệnh thì tên đối tượng đã được in ra.

Protected trong PHP

Protected được truy cập trong lớp và lớp kế thừa class. Không truy xuất được từ bên ngoài.

Ví dụ:

Sau khi chạy đã xuất hiện một thông báo lỗi. Như vậy là Protected không cho phép truy cấp ở bên ngoài dấu 2 ngoặc của Class {…}.

Private trong PHP

Private quyền truy cập hẹp nhất. Nó chỉ cho phép truy cập ở trong lớp đó. Không truy xuất được từ bên ngoài và lớp kế thừa.

Ví dụ:

Khi chạy lệnh sẽ xuất hiện các lỗi. Để kiểm tra bạn hãy thay thế protected và private thành public xem kết quả như thế nào nhé.

Với ví dụ này bạn sẽ so sánh được 3 kiểu giới hạn truy cập. Khi am hiểu bạn sẽ sử dụng thành thạo hơn và giúp bảo mật hệ thống tốt hơn khi viết code.

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.

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.

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.

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.

  • Đặt public 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.

  • Viết lớp con có tên Female kế thừa lớp cha Person

  • Thêm biến $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ị.


DOCTYPE html>



    
    
    Document




    



Kết quả:2.2. Protected

Cổ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 PersonFemale 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.
DOCTYPE html>



    
    
    Document




    



Kết quả:2.3. Private

Bâ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 private
        private $name;
        private $age;
        private $local;

  • 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.

Lấy ví dụ ở class Female ở trên, ta gắn 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!

𝔑𝔥ậ𝔱 𝔏𝔞𝔪

Chủ Đề