PHP oop Access Modifiers atau seting akses

Properti dan metode memiliki pengubah akses yang mengontrol di mana mereka dapat diakses.

Ada tiga macam pengubah akses yaitu:

publik – properti atau metode dapat diakses dari mana saja. Ini standarnya
protected – properti atau metode dapat diakses di dalam kelas dan oleh kelas yang berasal dari kelas itu
private – properti atau metode yang hanya dapat diakses di dalam kelas

<?php
class Buah {
  public $nama;
  protected $warna;
  private $berat;
}

$mangga = new Buah();
$mangga->nama = 'Mangga'; // OK
$mangga->warna = 'Kuning'; // akan error
$mangga->berat = '400 gram'; // akan error karena diakses diluar kelas
?>

Dalam contoh diatas ini kita telah menambahkan tiga pengubah akses yang berbeda ke tiga properti. jika kita mencoba untuk mengatur properti nama itu akan berfungsi dengan baik (karena properti nama adalah publik). Namun, jika Anda mencoba mengatur properti warna atau berat, itu akan menghasilkan kesalahan fatal (karena properti warna dan berat protected dan private).

Dalam contoh berikut ini kita menambahkan pengubah akses ke dua metode. Di sini, jika kita mencoba memanggil fungsi set_warna() atau set_berat() itu akan menghasilkan kesalahan fatal (karena kedua fungsi tersebut mempunyai akses protected dan private), bahkan jika properti memiliki akses public:

<?php
class Buah {
  public $nama;
  public $warna;
  public $berat;

  function set_nama($n) {  // a public function (default)
    $this->nama = $n;
  }
  protected function set_warna($n) { // a protected function
    $this->warna = $n;
  }
  private function set_berat($n) { // a private function
    $this->berat = $n;
  }
}

$mangga = new Buah();
$mangga->set_nama('Mangga'); // akan ok
$mangga->set_warna('Kuning'); // akan error
$mangga->set_berat('200'); // akan error
?>

Untuk membuat akses menjadi public pada php dapat ditulis public nama_fungsi() atau tanpa ditulis public dan langsung menulis nama_fungsi. karena secara mendasar fungsi pada php bersifat public.

Related posts

Leave a Comment