Trong bài viết này, chúng tôi tìm hiểu cách tốt nhất để tạo ra các chiến lược getter và setter trong PHP. Các chiến lược Getter và Setter được sử dụng khi chúng ta cần hạn chế truy cập trực tiếp vào các biến của người dùng cuối. Getters và setters là các phương thức được sử dụng để xác định hoặc truy xuất các giá trị của các biến, thông thường là các phương thức riêng tư.
Đúng như tên cho thấy, phương pháp Getter là một kỹ thuật nhận hoặc khôi phục giá trị của một đối tượng. Ngoài ra, một phương thức setter là một kỹ thuật đặt giá trị của một đối tượng.
Thí dụ
Hãy hiểu việc sử dụng các phương thức Getter và Setter thông qua một ví dụ.
Output:
PHP Error Cannot access private property Person::$name
Explanation:
Trong lớp người của chúng tôi ở trên, chúng tôi có một tài sản riêng gọi là $ name. Bởi vì đó là tài sản riêng, chúng tôi không thể truy cập chúng trực tiếp như trên và sẽ tạo ra một lỗi nghiêm trọng.
Thí dụ
Hãy hiểu việc sử dụng các phương thức Getter và Setter thông qua một ví dụ.
Output:
welcomeAlex
Explanation:
Trong lớp người của chúng tôi ở trên, chúng tôi có một tài sản riêng gọi là $ name. Bởi vì đó là tài sản riêng, chúng tôi không thể truy cập chúng trực tiếp như trên và sẽ tạo ra một lỗi nghiêm trọng.
Để chạy mã ở trên và lấy đầu ra mong muốn của chúng tôi, hãy kiểm tra ví dụ này.
Ở đây để cung cấp quyền truy cập vào các thuộc tính riêng của chúng tôi, chúng tôi đã tạo ra một chức năng "getter" có tên là GetData, một lần nữa vì khả năng hiển thị của các thuộc tính được đặt thành riêng tư, bạn cũng sẽ không thể thay đổi hoặc sửa đổi giá trị của chúng. Vì vậy, bạn nên sử dụng một trong các hàm "setter" mà chúng tôi đã thực hiện: setName. Sau đó, chúng tôi đã khởi tạo đối tượng con người của chúng tôi.
- Chúng tôi "đặt" thuộc tính $ name thành "Alex" sử dụng kỹ thuật Setter SetData của chúng tôi. Sau đó, chúng tôi lấy lại giá trị của thuộc tính $ name bằng cách sử dụng hàm getdata của chúng tôi.
- Cập nhật vào ngày 31 tháng 12 năm 2019 08:57:06
- Câu hỏi và câu trả lời liên quan
- Phương pháp getters/setters cho lớp Python là gì?
- Getters và Setters ở Kotlin
- Getters và setters trong các lớp JavaScript?
- Sự khác biệt giữa getters và setters trong javascript là gì?
- Các phương pháp để vệ sinh đầu vào của người dùng với PHP là gì?
- Các thuộc tính và phương pháp tĩnh PHP
- Phương pháp phân cấp là gì?
- Phương pháp trong Java là gì?
- Phương pháp bản địa trong Java là gì và chúng được sử dụng ở đâu?
- Các phương pháp định giá và các loại của nó là gì?
- Phương thức lưu và khôi phục trong Canvas HTML5 là gì?
- Phương pháp Defender hoặc phương pháp ảo trong Java là gì?
- Phương thức chuỗi jQuery là gì?
Getters
Getters cung cấp quyền truy cập công khai vào dữ liệu riêng tư. Họ cũng có thể thực hiện một sửa đổi nhỏ của kết quả trả lại. give public access to private data. They may also make a small modification of the returned result.
Hãy xem ví dụ sau:
Output:
Explanation:
- Nếu chúng ta giải quyết
line 14
, mã sẽ không biên dịch. Đó là bởi vì một thành viên tư nhân [được tuyên bố làline 5
] không thể được truy cập trực tiếp bên ngoài cơ thể lớp. - Tại
line 15
, một thành viên tư nhân được truy cập bên ngoài cơ thể lớp. Điều đó không được thực hiện trực tiếp [như trongline 14
] nhưng thông qua một chức năng công cộng - một người nhận. Đây là cách một thành viên tư nhân có thể được truy cập bên ngoài cơ thể lớp.
Hãy thêm nhiều thứ hơn:
Output:
Những điều duy nhất được thêm vào là 2 getters - getPerimeter
và getArea
. Đơn giản là họ là những người nhận được một thành viên tư nhân với một sửa đổi nhỏ.
Setters
Setters cho phép một biến riêng được sửa đổi. Chúng rất quan trọng vì chúng có thể cung cấp xác thực trước khi một giá trị được đặt. allow for a private variable to be modified. They are important since they can provide validation before a value is set.
Hãy xem xét ví dụ sau:
Output:
Explanation:
- Giá trị của thành viên tư nhân
PHP Error Cannot access private property Person::$name
0 được sửa đổi tạiPHP Error Cannot access private property Person::$name
1 mà không cần xác thực. - Tại
PHP Error Cannot access private property Person::$name
2 được xác định là một setter có xác thực. Nếu xác thực không thành công, giá trịPHP Error Cannot access private property Person::$name
3 được đặt ởPHP Error Cannot access private property Person::$name
4. Nếu xác thực vượt quaPHP Error Cannot access private property Person::$name
5 thì giá trị truyền được đặt [PHP Error Cannot access private property Person::$name
6]. - Nếu chúng ta giải trí
PHP Error Cannot access private property Person::$name
7, thì tuổi đối tượng của người đó sẽ có giá trị bằng không. Đó là do xác nhận tạiPHP Error Cannot access private property Person::$name
8.
Tại sao sử dụng getters và setters?
Bởi vì các thành viên tư nhân có thể có xác thực trước khi sửa đổi [setter] và truy cập được kiểm soát [getter].
Nó có vẻ dễ dàng hơn để chỉ có các thành viên công cộng. Bằng cách này, không có nhu cầu về getters và setters. Đó là một thông lệ tốt hơn để có các thành viên tư nhân được truy cập với Getter và được sửa đổi thông qua Setter. Bằng cách này, một xác nhận có thể được cung cấp trong một setter và quyền truy cập công khai chỉ có thể được thực hiện cho một số thành viên - những người có getters.