Sự khác biệt giữa Công khai, Riêng tư và Được bảo vệ trong PHP là gì

Su Khac Biet Giua Cong Khai Rieng Tu Va Duoc Bao Ve Trong Php La Gi



PHP được sử dụng rộng rãi để phát triển các trang web động và ứng dụng web. PHP cung cấp các từ khóa được gọi là công cụ sửa đổi truy cập . Các thuộc tính công cụ sửa đổi truy cập được sử dụng để truy cập các thuộc tính biến, lớp hoặc lớp theo ba cách khác nhau, chẳng hạn như công cộng , riêng tư, được bảo vệ . Trong bài viết này, chúng tôi sẽ thảo luận về các công cụ sửa đổi truy cập này và xác định sự khác biệt giữa ba công cụ sửa đổi truy cập này trong ngôn ngữ lập trình PHP.

Công cụ sửa đổi truy cập trong PHP là gì?

Trong PHP, các công cụ sửa đổi truy cập rất cần thiết vì chúng cung cấp cho người dùng khả năng điều chỉnh khả năng hiển thị cũng như khả năng truy cập của các thuộc tính và phương thức của lớp. Do đó, nó cung cấp khả năng đóng gói và bảo mật dữ liệu, và do đó, các thành viên của lớp được bảo vệ khỏi sự truy cập hoặc thay đổi trái phép. Ngoài ra, nó làm cho việc bảo trì mã và gỡ lỗi dễ dàng hơn.







Các loại công cụ sửa đổi truy cập

Ba công cụ sửa đổi truy cập tồn tại trong PHP được thảo luận dưới đây:



  • Công cộng: Bạn có thể truy cập một phương thức công khai từ bên ngoài lớp. Điều này ngụ ý rằng bất kỳ mã nào cũng có thể truy cập, thay đổi và gọi một phương thức công khai.
  • Riêng tư: Để truy cập phương thức riêng được giới hạn cho chính lớp đó. Điều này ngụ ý rằng không có mã nào khác, ngay cả khi nó là một lớp con, được phép truy cập một phương thức riêng tư hoặc đọc giá trị riêng tư.
  • được bảo vệ: Một phương thức được bảo vệ chỉ có thể truy cập được bên trong một lớp và các lớp có liên quan đến nó; nó không thể được sử dụng bên ngoài các lớp đó. Bất kỳ mã nguồn nào cần truy cập thể hiện của lớp đều có thể đọc hoặc thay đổi dữ liệu của thuộc tính được bảo vệ hoặc gọi hàm được bảo vệ.

Sự khác biệt giữa Công cụ sửa đổi quyền truy cập công khai, riêng tư và được bảo vệ trong PHP

Tài sản Công cộng Riêng tư được bảo vệ
khả năng tiếp cận Các công cụ sửa đổi truy cập này có thể được truy cập ở bất kỳ đâu, chẳng hạn như bên trong và bên ngoài mã. Các chỉ định truy cập riêng tư chỉ có thể truy cập được trong lớp. Nó có thể được truy cập bên trong lớp và các lớp và phương thức (con) có liên quan của nó.
Uyển chuyển Sự linh hoạt nhất được cung cấp bởi các tài nguyên công cộng vì chúng có thể được truy cập từ bất cứ đâu. Vì chúng chỉ có thể truy cập được trong lớp, nên các phương thức này mang lại sự linh hoạt kém nhất. Phương thức được bảo vệ cung cấp tính linh hoạt vừa phải vì các lớp con có thể truy cập các phương thức này.
đóng gói Các mã khác có thể truy cập hoặc đóng gói các phương thức công khai, nhưng lập trình viên có quyền kiểm soát điều này. Một phương thức riêng tư được gói gọn bên trong lớp, khiến mã bên ngoài không thể truy cập hoặc cập nhật chúng. Quá trình đóng gói của nó giống như phương thức công khai trong PHP.
Bảo vệ Các phương thức công khai có thể truy cập từ mọi nơi. Vì vậy, chúng cung cấp mức độ bảo mật thấp trong mã. Mức độ bảo mật tối đa được cung cấp bởi các công cụ sửa đổi truy cập riêng vì chúng hoàn toàn được chứa trong lớp. Vì chúng chỉ có thể được truy cập bởi các thành viên của lớp và các lớp con của nó, các công cụ sửa đổi truy cập được bảo vệ cung cấp mức độ bảo mật hợp lý.

Hãy xem sự khác biệt giữa các chỉ định truy cập này bằng một ví dụ chương trình đơn giản trong PHP.



Ví dụ: Chương trình PHP với Công cụ sửa đổi quyền truy cập Riêng tư, Công khai và Được bảo vệ





Ví dụ sau minh họa sự khác biệt giữa công khai, riêng tư và được bảo vệ trong một mã ví dụ:

< ?php
lớp MyClass {
công cộng $công khai = “Công-biến. \N ' ; // Có thể được truy cập từ bất cứ đâu
riêng tư $riêng tư = “Tư-biến. \N ' ; // Chỉ có thể được truy cập từ bên trong lớp
được bảo vệ $ được bảo vệ = 'Biến được bảo vệ.' ; // Có thể được truy cập trong lớp và bất kỳ lớp con nào

công cộng chức năng getPrivate ( ) {
trở lại $này - > riêng tư;
}

công cộng chức năng được bảo vệ ( ) {
trở lại $này - > được bảo vệ;
}
}
$obj = MyClass mới ( ) ;

tiếng vang $obj - > công cộng;
tiếng vang $obj - > getPrivate ( ) ;
tiếng vang $obj - > được bảo vệ ( ) ;
? >



Trong chương trình trên, chúng tôi đã định nghĩa một lớp là Lớp học của tôi với một tài sản công như $công khai có thể truy cập bất cứ nơi nào trong mã, một tài sản riêng như $riêng tư , và một tài sản được bảo vệ được gọi là $ được bảo vệ , do đó chúng ta không thể truy cập trực tiếp các chỉ định private và protected từ bên ngoài lớp. Khi chúng tôi sử dụng hai phương thức công khai được gọi là getPrivate() được bảo vệ() trả về các giá trị của các biến thuộc tính riêng tư và được bảo vệ tương ứng và đầu ra được đưa ra dưới đây:

Phần kết luận

PHP cung cấp nhiều chức năng và một trong số đó là các từ khóa được gọi là công cụ sửa đổi truy cập. Các công cụ sửa đổi truy cập này cung cấp các mẫu truy cập khác nhau cho dữ liệu của các lớp trong chương trình PHP. Trong hướng dẫn trên, chúng ta đã thấy sự khác biệt giữa các bộ điều chỉnh truy cập về khả năng truy cập, tính đóng gói, tính linh hoạt và bảo mật được cung cấp trong PHP.