Apa itu Static, Parent dan Self Dalam PHP?


Static, Parent dan Self adalah keyword pada PHP OOP yang merupakan perintah dalam membuat dan menangani sebuah static properti atau static method didalam class. Keyword "static" dipakai saat membuat static properti atau static method sedangkan keyword "parent" dan "self" dipakai untuk mengakses properti atau method tersebut didalam class dan class turunannya.

Keuntungan dari membuat static properti dan static method adalah kita bisa mengaksesnya tanpa membuat instantisasi object. Hal ini telah dibahas pada tulisan sebelumnya tentang operator Scope Resolution (::) .


Membuat Static Properti dan Static Method

Disini saya admin johan andy agasi Blog akan memberikan cotoh pembutan static. Untuk membuat static properti dan static method kita menggunakan keyword "static". Kita juga bisa menggunakan teknik enkapsulasi seperti public, private dan protected dalam membuat static properti dan static method.


Membuat Static Properti

  1. class Classname {  
  2.     public static $var = Value;  
  3. }  
Membuat Static Method

  1. class Classname {  
  2.     public static function aStaticMethod() {  
  3.         // ...  
  4.     }  
  5. }  
Contoh Membuat Static Properti dan Static Method

  1. <?php    
  2. class Sekolah    
  3. {    
  4.   public static $namaSekolah = 'SMPN 1 WELAHAN';    
  5.   
  6.   public static function showSekolah() {    
  7.     return self::$namaSekolah;    
  8.   }    
  9. }    
  10.   
  11. ?>    
Mengakses Static Properti dan Static Method

Dalam mengakses  static properti dan static method kita menggunakan operator scope resolution (::). Kita bisa mengakses  static properti dan static method didalam dan diluar class. Untuk mengakses dari luar class kita gunakan nama class, operator :: dan nama static, contoh : MyClass::CONSTANT.

Dan untuk mengakses  static properti dan static method didalam class kita gunakan keyword "self". Untuk mengakses  static properti dan static method pada class induk (diakses dari class turunan) kita gunakan keyword "parent". Dengan demikian kita tidak perlu menggunakan variabel $this saat akan mengakses static properti dan static method didalam class.


Mengakses Static Properti dan Static Method pada class (Induk)

  1. <?php    
  2. class Sekolah  {    
  3.   public static $namaSekolah = 'SMPN 1 WELAHAN';    
  4.   
  5.   public function showSekolah() {    
  6.     return self::$namaSekolah;    
  7.   }    
  8. }    
  9.   
  10. //mengakses static properti secara langsung    
  11. print Sekolah::$namaSekolah . "<br/>";    
  12.   
  13. //mengakses static properti dengan static method    
  14. print Sekolah::showSekolah() . "<br/>";    
  15. ?>    
Mengakses Static Properti dan Static Method pada class turunan

  1. <?php    
  2. class Sekolah    
  3. {    
  4.   public static $namaSekolah = 'SMPN 1 WELAHAN';    
  5.   
  6.   public static function showSekolah() {    
  7.     return self::$namaSekolah;    
  8.   }    
  9. }    
  10.   
  11. class Siswa extends Sekolah    
  12. {    
  13.   public static $namaSiswa = 'SABRINA';    
  14.   
  15.   public static function showSiswa() {    
  16.     return self::$namaSiswa ." dari ".parent::$namaSekolah;    
  17.   }    
  18. }    
  19.   
  20. //mengakses static properti class induk secara langsung    
  21. print Sekolah::$namaSekolah . "<br/>";    
  22.   
  23. //mengakses static properti class induk dengan method    
  24. print Sekolah::showSekolah() . "<br/>";    
  25.   
  26. //mengakses static properti class anak secara langsung    
  27. print Siswa::$namaSiswa . "<br/>";    
  28.   
  29. //mengakses static properti class induk dan class anak dengan method    
  30. print Siswa::showSiswa() . "<br/>";    
  31. ?>    
Pada program diatas kita membuat dua cuah class, yaitu class Sekolah (class induk) dan class Siswa yang merupakan turunan dari class Sekolah.

Pada class Sekolah terdapat sebuah static properti $namaSekolah dan static method showSekolah(). Pada method showSekolah terlihat kita mengakses static properti $namaSekolah dengan keyword self.

Pada class Siswa yang merupakan turunan dari class Sekolah, sebuah static properti $namaSiswa dan static method showSiswa(). Pada method showSiswa ini terlihat kita mengakses dua buah static properti yaitu $namaSekolah dan $namaSiswa.

Karena  berada pada class induk maka kita mengakses Statis properti $namaSekolah dengan keyword parent. Sementara untuk mengakses static properti $namaSiswa kita menggunakan keyword self. Apabila sobat kurang

Jika script diatas dijalankan akan tampil seperti ini :

SMPN 1 WELAHAN
SMPN 1 WELAHAN
SABRINA
SABRINA dari SMPN 1 WELAHAN
0 Komentar untuk " Apa itu Static, Parent dan Self Dalam PHP? "