Mengenal Static Keyword PHP – Haloo semua nya, kali ini kita akan coba berkenalan dengan yang nama nya static keyword pada bahasa pemrograman PHP
Mengenal Static Keyword PHP
Apa itu static keyword?
Static keyword adalah sebuah kata kunci yang bisa kita gunakan untuk membuat property dan juga membuat method/function didalam sebuah class yang bisa kita akses secara langsung tanpa harus membuat object nya terlebih dahulu atau tanpa harus menginstansiasi class nya terlebih dahulu..
Yang perlu kalian perhatikan
Tapi perlu kalian ketahui juga bahwa setiap kali kita membuat static method/function, maka function tersebut akan berdiri sendiri, terpisah dari instansiasi kelas tersebut dan tidak dapat mengakses object2 lain yang ada didalam class tersebut.
Termasuk mengakses function biasa didalam 1 class yang sama pun tidak bisa..
Jadi sebetulnya static keyword ini bisa dikatakan sudah keluar dari konsep OOP, karena sudah tidak berhubungan lagi dengan object2 yang ada didalam class nya..
Untuk cara pemanggilan nya pun simple sekali, kita tidak perlu menginstansiasi class nya terlebih dahulu, atau tidak perlu membuat object terlebih dahulu dari class tersebut.
Cara pemanggilan nya sama seperti saat kita memanggil constanta, yaitu menggunakan double colon (::).
Contoh Pembuatan Static Keyword
Untuk menggunakan static keyword, kita hanya perlu menambahkan keyword static setelah visibility property/method tersebut.
Agar lebih mudah dipahami, kita langsung masuk ke praktek nya saja, contoh:
<?php class Kendaraan { public static $harga; // static property public static function getMerk() // static method { return 'Suzuki'; } }
Kalian coba perhatikan script diatas, saya membuat sebuah class dengan nama Kendaraan.
Kemudian pada baris ke-5 adalah contoh pembuatan static property dengan nama $harga.
Dan pada baris ke-7 adalah contoh pembuatan static method dengan nama getMerk().
Visibility untuk property dan method diatas adalah bersifat public, dan setelah visibility tersebut, kita menambahkan keyword static.
Cara pemanggilan method static / property static
Setiap method atau property yang dipasangi dengan kata kunci static, maka method/property tersebut akan menempel langsung kepada class nya, bukan kepada instance class nya.
Jadi kita tidak perlu membuat object nya terlebih dahulu, bisa langsung kita panggil dengan menggunakan double colon (::) seperti pemanggilan pada constanta.
Contoh:
<?php class Kendaraan { public static $harga = 5000; // static property public static function getMerk() // static method { return 'Suzuki'; } } echo Kendaraan::getMerk(); // Suzuki echo Kendaraan::$harga; // 5000
Coba kalian perhatikan script diatas.
Pada baris ke-13 adalah contoh pemanggilan method static, dan pada baris ke-14 adalah contoh pemanggilan property static.
Method biasa dan method static dalam 1 class
Apakah bisa method static dan method biasa digabungkan dalam 1 class?
Jawaban nya bisa,Method biasa dan method static bisa digabungkan dalam 1 class.
Jadi dalam 1 class isinya ga harus method static semua, atau method biasa semua, keduanya bisa digabungkan dalam 1 class yang sama.
Contoh:
<?php class Kendaraan { public static $harga = 5000; // static property public $warna = 'merah'; // property biasa/object public static function getMerk() // static method { return 'Suzuki'; } public function getJenis() // method biasa { return 'City Car'; } }
Cara memanggil method static dari method biasa di class yang sama
Kita juga bisa memanggil method static dari method biasa didalam class yang sama dengan menggunakan kata kunci self.
Contoh:
<?php class Kendaraan { public static $harga = 5000; // static property public $warna = 'merah'; // property biasa/object public static function getMerk() // static method { return 'Suzuki'; } public function getJenis() // method biasa { return 'City Car'; } public function setCar() { $merk = self::getMerk(); // memanggil static method getMerk dengan keyword self return $merk; } }
Coba kalian perhatikan script diatas, pada baris ke-18 saya membuat sebuah method biasa dengan nama setCar().
Dan didalam method tersebut, saya memanggil method static getMerk() dengan menggunakan kata kunci self.
Memanggil method static dari class yang lain
Kita juga bisa memanggil sebuah method static dari class yang lain asalkan visibility dari method tersebut bersifat public.
Contoh:
<?php class motor { public static function merk() { echo "Honda"; } } class mobil { public function getMerkMotor() { motor::merk(); } }
Pada contoh diatas terdapat 2 buah class, yaitu class motor dan class mobil.
Dimana pada class motor terdapat sebuah method static dengan nama merk().
Dan didalam class mobil, terdapat sebuah method biasa dengan nama getMerkMotor() yang didalam nya memanggil method static merk() dari class motor.
Memanggil method static dari class turunan nya
Method static juga bisa dipanggil dari class turunan nya dengan menggunakan kata kunci parent.
Tapi syarat nya yaitu visibility untuk method/function tersebut harus bersifat public atau protected.
Contoh:
<?php class kendaraan { protected static function jenis() { return "mobil"; } } class bahanbakar extends kendaraan { public $nama_bbm; public function jenisKendaraan() { $this->nama_bbm = parent::jenis(); } } $bbm = new bahanbakar; echo $bbm->nama_bbm;
Pada script diatas terdapat 2 buah class yaitu class kendaraan dan class bahanbakar.
Yang mana pada baris ke-10 saat kita mendeklarasikan class bahanbakar, kita juga meng-extends class kendaraan sebagai parent class nya.
Ini artinya class bahanbakar adalah child class dari class kendaraan, dan class kendaraan adalah parent class dari class bahanbakar.
Didalam class bahanbakar terdapat sebuah method dengan nama jenisKendaraan(), yang mana didalam method tersebut, kita memanggil method static jenis() yang ada didalam class parent nya (kendaraan) dengan menggunakan kata kunci parent.
Jadi itu tadi sekilas pembahasan tentang static keyword pada PHP, mudah bukan?
Support Us
Jika artikel ini bermanfaat untuk kamu, membantu menyelesaikan masalah yang sedang kamu hadapi, kamu juga bisa dukung kami dengan mengunjungi halaman berikut: https://saweria.co/sangcahayaid
Terima kasih..
[…] Jika kalian belum mengetahui apa itu method static pada PHP, silahkan buka postingan sebelumnya : Mengenal Static Keyword pada PHP. […]