Trong bài viết này, chúng ta tìm hiểu cách tốt nhất để tạo 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ế quyền 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 giá trị của các biến, thường là các biến riêng tư.
Đúng như tên gọi, phương thức getter là một kỹ thuật lấy hoặc khôi phục giá trị của một đối tượng. Ngoài ra, phương thức setter là một kỹ thuật đặt giá trị của một đối tượng.
Ví dụ
Hãy hiểu cách sử dụng các phương thức getter và setter thông qua một ví dụ.
<?php class Person{ private $name; public function setName($name){ $this->name = $name; } public function getName(){ return $this->name; } } $person = new Person(); echo $person->name; ?>
Đầu ra:
PHP Error Cannot access private property Person::$name
Giải thích:
Trong lớp Person của chúng ta ở trên, chúng ta có một thuộc tính riêng là $ name. Bởi vì đó là tài sản riêng tư, chúng tôi không thể truy cập trực tiếp chúng như ở trên và điều đó sẽ tạo ra lỗi nghiêm trọng.
Ví dụ
Để chạy đoạn mã trên và nhận được kết quả mong muốn của chúng ta, Hãy kiểm tra ví dụ này.
<?php class Person{ private $name; public function setName($name){ $this->name = $name; } public function getName(){ return 'welocme'. $this->name; } } $person = new Person(); $person->setName('Alex'); $name = $person->getName(); echo $name; ?>
Đầu ra:
welcomeAlex
Giải thích:
Ở đây để cấp quyền truy cập vào các thuộc tính riêng tư của chúng tôi, chúng tôi đã tạo một hàm "getter" được gọi 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 các 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 đã tạo:setName. Sau đó, chúng tôi đã Khởi tạo đối tượng Person của chúng tôi.
Chúng tôi "đặt" thuộc tính $ name thành "Alex" bằng cách sử dụng kỹ thuật setter setData của chúng tôi. Sau đó, chúng tôi truy xuất 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.