PHP - Penempatan Semula

Penempatan semula adalah salah satu prinsip asas programming berorentas objek (OOP). Ia merujuk kepada penggabungan data dengan kaedah yang beroperasi pada data itu. Dalam PHP, penempatan semula dapat dicapai menggunakan kelas dan pengubahsuaian akses seperti awam, persendirian, dan terperlindung. Panduan ini akan menghidangkan anda melalui asas penempatan semula dalam PHP, bermula dengan ahli awam, kemudian ke ahli persendirian, dan akhirnya menyelami ahli terperlindung.

PHP - Encapsulation

Ahli Awam

Ahli awam boleh diakses dari mana-mana, kedua-dua di dalam dan di luar kelas. Mereka diisytiharkan menggunakan kata kunci public. Berikut adalah contoh kelas mudah dengan ahli awam:

class Car {
public $color;

public function setColor($color) {
$this->color = $color;
}

public function getColor() {
return $this->color;
}
}

$myCar = new Car();
$myCar->setColor("merah");
echo "Kereta saya adalah " . $myCar->getColor() . "."; // Output: Kereta saya adalah merah.

Dalam contoh ini, kita ada kelas Car dengan properti awam $color dan dua buah kaedah awam setColor() dan getColor(). Kita dapat mudah menetapkan dan mendapatkan warna kereta dari luar kelas.

Ahli Persendirian

Ahli persendirian hanya boleh diakses di dalam kelas yang ditakrifkan. Mereka diisytiharkan menggunakan kata kunci private. Berikut adalah contoh kelas dengan ahli persendirian:

class BankAccount {
private $balance;

public function __construct($initialBalance) {
$this->balance = $initialBalance;
}

public function deposit($amount) {
if ($amount > 0) {
$this->balance += $amount;
}
}

public function getBalance() {
return $this->balance;
}
}

$myAccount = new BankAccount(100);
$myAccount->deposit(50);
echo "Baki akaun saya adalah " . $myAccount->getBalance() . "."; // Output: Baki akaun saya adalah 150.

Dalam contoh ini, kita ada kelas BankAccount dengan properti persendirian $balance dan dua buah kaedah awam deposit() dan getBalance(). Properti $balance tidak boleh diakses secara langsung dari luar kelas, tetapi kita dapat mengubahnya menggunakan kaedah deposit() dan mendapatkan nilaiannya menggunakan kaedah getBalance().

Ahli Terperlindung

Ahli terperlindung boleh diakses di dalam kelas yang ditakrifkan serta di dalam mana-mana kelas turunan. Mereka diisytiharkan menggunakan kata kunci protected. Berikut adalah contoh kelas dengan ahli terperlindung:

class Animal {
protected $name;

public function __construct($name) {
$this->name = $name;
}
}

class Dog extends Animal {
public function bark() {
echo "Woof! Saya " . $this->name . ".";
}
}

$myDog = new Dog("Buddy");
$myDog->bark(); // Output: Woof! Saya Buddy.

Dalam contoh ini, kita ada kelas Animal dengan properti terperlindung $name. Kelas Dog menggantikan kelas Animal dan mempunyai akses ke properti $name kerana ia terperlindung. Kita dapat menggunakan properti $name di dalam kelas Dog untuk melaksanakan kaedah bark().

Kesimpulan

Penempatan semula adalah konsep penting dalam OOP yang membantu untuk mengekalkan integriti data dengan menyekat akses langsung kepadanya. Dengan menggunakan pengubahsuaian akses seperti awam, persendirian, dan terperlindung, anda dapat mengawal bagaimana data anda diakses dan diubahsuai. Memahami penempatan semula akan membantu anda menulis kod yang lebih tekal dan mudah diuruskan dalam PHP dan bahasa OOP lain.

Credits: Image by storyset