Keuntungan Setter dan Getter dalam OOP di PHP
Dalam pelajaran sebelumnya, kita membuat getter dan setter untuk setiap properti. Mungkin muncul pertanyaan, mengapa diperlukan hal yang rumit seperti ini, karena secara faktual efek yang sama dapat dicapai jika kita membuat properti menjadi publik, bukan privat.
Masalahnya adalah getter dan setter memiliki keuntungan: sebelum mengakses properti kita dapat melakukan beberapa pengecekan. Sebagai contoh, dalam kasus kita, saat menulis nama depan dan nama belakang, kita dapat memeriksa apakah nilai baru bukan merupakan string kosong:
<?php
class User {
private $name;
private $surn;
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'name is incorrect';
}
}
public function setSurn($surn) {
if (strlen($surn) > 0) {
$this->surn = $surn;
} else {
echo 'surn is incorrect';
}
}
public function getName() {
return $this->name;
}
public function getSurn() {
return $this->surn;
}
}
?>
Mari kita uji, bagaimana ini bekerja. Pertama-tama, mari buat objek dari kelas:
<?php
$user = new User();
?>
Sekarang mari coba tulis nilai yang benar:
<?php
$user->setName('john');
?>
Dan sekarang mari coba tulis nilai yang tidak benar:
<?php
$user->setName(''); // error
?>
Di kelas Employee, dalam setter
usia, buatlah pengecekan bahwa
usia harus antara
0 sampai 120.
Di kelas Employee, dalam getter
gaji, buatlah agar
saat membaca gaji, di akhir
nilainya ditambahkan tanda dolar.