Kelebihan Penyeter dan Pemeroleh dalam OOP dalam PHP
Dalam pelajaran sebelumnya, kita telah membuat pemeroleh dan penyeter untuk setiap sifat. Mungkin timbul persoalan, mengapakah kerumitan sedemikian diperlukan, kerana secara faktanya kesan yang sama boleh dicapai jika sifat dijadikan awam, dan bukannya peribadi.
Masalahnya ialah pemeroleh dan penyeter mempunyai kelebihan: sebelum mengakses sifat, beberapa semakan boleh dilakukan. Sebagai contoh, dalam kes kita, semasa menulis nama dan nama keluarga, kita boleh menyemak bahawa nilai baru bukan rangkaian 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 berfungsi. Pertama, mari buat objek kelas:
<?php
$user = new User();
?>
Sekarang mari cuba tulis nilai yang betul:
<?php
$user->setName('john');
?>
Dan sekarang mari cuba tulis nilai yang tidak betul:
<?php
$user->setName(''); // ralat
?>
Dalam kelas Employee, dalam penyeter
umur, buat semakan bahawa
umur mestilah
dari 0 hingga 120.
Dalam kelas Employee, dalam pemeroleh
gaji, buat supaya
apabila membaca gaji, di akhir
nilainya ditambahkan tanda dolar.