Getter/Setter là phương thức truy xuất/gán giá trị cho thuộc tính private, che giấu triển khai nội bộ (encapsulation).
Ví dụ sai (truy cập trực tiếp private)
<?php
class Person {
private $name;
}
$p = new Person();
echo $p->name; // Fatal Error: Cannot access private property
?>
Ví dụ đúng (dùng getter/setter)
<?php
class Person {
private $name;
public function setName($name) { $this->name = $name; }
public function getName() { return 'Welcome ' . $this->name; }
}
$p = new Person();
$p->setName('Alex');
echo $p->getName(); // Welcome Alex
?>
Lợi ích
- Kiểm soát truy cập (validation, format dữ liệu).
- Cho phép logic bổ sung khi get/set (lazy load, log, event).
- Thay đổi triển khai nội bộ mà không ảnh hưởng code bên ngoài.