Bạn có nên sử dụng getters và setters trong PHP không?

Một mô hình tiêu chuẩn trong lập trình hướng đối tượng là sử dụng các phương thức getter và setter [các hàm của lớp] để cung cấp quyền truy cập vào các thuộc tính của lớp [các biến]

Trong các lớp PHP, bạn cũng có thể dễ dàng triển khai các phương thức getter và setter

 

Tại sao bạn nên sử dụng một phương thức để truy xuất hoặc đặt biến của một lớp thay vì truy cập trực tiếp vào nó?

Nó khá đơn giản

Nếu bạn đặt thuộc tính của lớp là công khai, thì bạn sẽ không kiểm soát được giá trị mà thuộc tính có thể nhận. Bất kỳ mã bên ngoài nào cũng có thể thay đổi nó mà không có bất kỳ ràng buộc nào

 

Thay vào đó, nếu bạn đặt thuộc tính là riêng tư và cung cấp một phương thức công khai để đặt giá trị của nó, bạn có thể quyết định chấp nhận giá trị nào và bạn có thể thực hiện bất kỳ loại xác thực và làm sạch nào trước khi đặt giá trị mới.  

Nói cách khác, bạn có thể triển khai bộ lọc giữa thuộc tính và mã bên ngoài lớp

 

Trong ví dụ ngắn sau đây, bạn có thể xem cách triển khai các hàm getter và setter trong PHP

Trong ví dụ này, thuộc tính $name phải dài từ 3 đến 16 ký tự. Hàm setter đảm bảo rằng độ dài của tên mới nằm trong phạm vi đó trước khi thay đổi thuộc tính.

Chủ Đề