Modifier public membuat properti atau metode dapat diakses dari mana saja, baik di dalam kelas itu sendiri, dari kelas turunan, maupun dari luar kelas.
Contoh:
classMobil {public $warna ="Merah";publicfunctiontampilkanWarna() {echo$this->warna; }}$mobil =newMobil();$mobil->tampilkanWarna(); // Output: Merah
2. Private
Modifier private membatasi akses hanya ke dalam kelas di mana properti atau metode tersebut didefinisikan. Artinya, kelas lain, termasuk kelas turunan, tidak dapat mengakses properti atau metode tersebut.
Contoh:
classMobil {private $warna ="Merah";publicfunctiontampilkanWarna() {echo$this->warna; }}$mobil =newMobil();$mobil->tampilkanWarna(); // Output: Merah$mobil->warna; // Error: Tidak bisa diakses dari luar kelas
3. Protected
Modifier protected membuat properti atau metode dapat diakses oleh kelas di mana mereka didefinisikan, serta oleh kelas-kelas turunan (subclass).
Contoh:
classKendaraan {protected $warna ="Biru";}// ini adalah pewarisan sifatclassMobilextendsKendaraan {publicfunctiontampilkanWarna(){echo$this->warna; }}$mobil =newMobil();$mobil->tampilkanWarna(); // Output: Biru$mobil->warna; // Error: Tidak bisa diakses secara langsung dari luar kelas atau subkelas
Penggunaan modifier ini membantu mengatur arsitektur program dengan mengendalikan akses ke data dan metode, serta meningkatkan keamanan dan integritas data dalam pengembangan perangkat lunak.
Encapsulation Juga bisa dilakukan pada sebuah method contoh
classAccount {private $balance =1000; // Properti 'balance' bersifat private// Metode publik untuk menambahkan uang ke saldopublicfunctiondeposit($amount) {if ($amount >0) {$this->balance += $amount;return"Deposit berhasil. Saldo saat ini: $this->balance"; }return"Masukkan jumlah yang valid."; }// Metode publik untuk mengambil uang dari saldopublicfunctionwithdraw($amount) {if ($amount >0&& $amount <=$this->balance) {$this->balance -= $amount;return"Penarikan berhasil. Saldo saat ini: $this->balance"; }return"Penarikan gagal. Jumlah tidak valid atau saldo tidak cukup."; }// Metode private untuk mendapatkan saldo saat iniprivatefunctiongetBalance() {return$this->balance; }// Metode publik untuk mengecek saldo (menggunakan metode private getBalance)publicfunctioncheckBalance() {return"Saldo saat ini: ".$this->getBalance(); }}$myAccount =newAccount();echo $myAccount->deposit(500); // Output: Deposit berhasil. Saldo saat ini: 1500echo $myAccount->withdraw(200); // Output: Penarikan berhasil. Saldo saat ini: 1300echo $myAccount->checkBalance(); // Output: Saldo saat ini: 1300