♠ Posted by Unknown in OOP at 01.46
Pengertian Static Property dan Static Method
Dalam Pemrograman objek PHP dijelaskan bahwa seluruh property dan method hanya bisa diakses dari objek, maka static property dan static method adalah pengecualiannya.
Static property dan static method adalah property (variabel) dan method (function) yang melekat kepada class, bukan kepada objek. Konsep static property memang ‘agak keluar’ dari konsep objek sebagai tempat melakukan proses, karena sebenarnya class hanya merupakan ‘blueprint’ saja.
Untuk membuat static property dan static method, kita menambahkan keyword ‘static’ setelah penulisan akses level property atau method, seperti contoh berikut:
// static property
public
static
$harga_beli
;
// static method
public
static
function
beli_laptop() {
//...isi method
}
Karena static property dan static method adalah milik class, maka kita tidak perlu membuat objek untuk mengaksesnya, tapi langsung menyebutkan nama class dan menggunakan operator ‘::’, berikut adalah contoh pengaksesan static property dan static method dari class laptop:
echo
laptop::
$harga_beli
;
echo
laptop::beli_laptop();
Tutorial Cara Penggunaan Static Property dan Static Method
Agar lebih memahami cara penggunaan static property dan static method, langsung saja kita masuk ke dalam kode program:
<?php
// buat class laptop
class laptop {
public $merk;
public $pemilik;
// static property
public static $harga_beli;
//static method
public static function beli_laptop() {
return "Beli Laptop";
}
}
// set static property
laptop::$harga_beli=4000000;
// get static property
echo "harga beli : Rp".laptop::$harga_beli;
echo "<br />";
// panggil static method
echo laptop::beli_laptop();
?>
Dalam kode diatas, saya membuat class laptop dengan 2 property ‘biasa’, 1 static property dan 1static method. Perhatikan cara mengkases keduanya tanpa membuat objek.
Jika kita menggunakan variabel $this untuk mengakses property dan method ‘normal’ dari dalam class, maka untuk mengakses static property dan static method, kita menggunakan keyword “self::”.
Berikut contoh penggunaannya:
Pada kode diatas, dibuat class komputer dengan sebuah static method beli_komputer(). Method ini memiliki hak akses protected, sehingga hanya bisa diakses dari dalam class itu sendiri atau dari dalam class turunan.
<?php
// buat class laptop
class laptop {
public $merk;
public $pemilik;
// static property
public static $harga_beli;
//static method
public static function beli_laptop() {
return "Beli laptop seharga Rp".self::$harga_beli;
}
}
// set static property
laptop::$harga_beli=4000000;
// panggil static method
echo laptop::beli_laptop();
?>
Dalam method beli_semua(), saya memanggil method beli_komputer() milik class komputer menggunakan perintah parent::beli_komputer(). Ini adalah cara pemanggilan static method milikparent class. Kemudian masih di dalam method beli_semua(), saya memanggil method beli_laptop()dengan perintah self::beli_laptop(), karena method ini ada di dalam class leptop itu sendiri.
Untuk menguji apakah method beli_semua() sukses dijalankan, saya kemudian memanggilnya dengan perintah laptop::beli_semua().
Perhatikan juga pada bagian komentar di akhir kode diatas. Jika kita mencoba memanggil method laptop::beli_laptop(), PHP akan mengeluarkan error karena method beli_laptop() memiliki hak akses private, sehingga tidak bisa diakses dari luar class.
Dalam membuat program berbasis objek, penggunaan static property (dan juga static method) sebaiknya dibatasi, karena static method cenderung susah dideteksi jika terjadi kesalahan. Namun konsep property dan method yang melekat kepada class ini banyak juga digunakan untuk membuat design pattern. Bahkan di dalam framework PHP seperti laravel, static methodmerupakan mekanisme utama untuk menjalankan sebagian besar kode program.
sumber : http://www.duniailkom.com/
0 komentar:
Posting Komentar