Visibility dalam OOP PHP - Ep. 6
Property_, Method dan Constant (khusus konstanta mulai PHP 7.1.0) dapat dikontrol aksesnya menggunakan visibility keyword. Terdapat tiga keyword yaitu public
, protected
dan private
. Dalam literatur lain ini umum juga disebut dengan istilah enkapsulasi atau encapsulation. Cara menggunakannya yaitu dengan memberikan prefix berupa salah satu dari tiga visibility keyword pada property, method dan constant.
Berikut penjelasan untuk masing-masing dari ketiga visibility keyword:
1. Public
Artinya property, method atau constant dapat diakses dari dalam maupun luar class.
2. Protected
Artinya property, method atau constant hanya dapat diakses dari dalam class dan extended/inherited class (akan dijelaskan pada episode tentang pewarisan).
3. Private
Artinya property, method atau constant hanya dapat diakses dari dalam class itu sendiri.
Mari kita praktekkan penggunaan visibility keyword
1. Property Visibility
Property harus didefinisikan sebagai public
, protected
atau private
, jika dideklarasikan menggunakan var
maka otomatis didefinisikan sebagai public
.
Jika kode di atas dijalankan maka akan keluar Khoerodin
, coba sekarang ganti dengan echo $UserGanteng->birthdate;
, apa yang terjadi? maka akan Fatal Error
, karena property $birthdate
itu protected
.
Begitu juga jika diganti dengan echo $UserGanteng->address
akan Fatal Error
, karena property $address
itu private
.
Sekarang ganti lagi dengan $UserGanteng->showBio();
, ini tidak akan error karena memanggil public
method
walaupun berisi protected
dan private
property.
2. Method Visibility
Method bisa didefinisikan sebagai public
, protected
atau private
, jika dideklarasikan tanpa menggunakan salah satu dari tiga visibility keyword tersebut maka otomatis didefinisikan sebagai public
.
3. Constant Visibility
Mulai PHP 7.1.0 konstanta atau lebih tepatnya konstanta class dapat didefinisikan sebagai public
, protected
atau private
. Jika konstanta dideklarasikan tanpa menggunakan salah satu dari tiga visibility keyword tersebut maka otomatis didefinisikan sebagai public
.
Demikian pembahasan tentang visibility dalam Object-Oriented PHP atau yang biasa disebut dengan encapsulation.