Introduction Overloading PHP
Seperti yang saya janjikan akan berlanjut ke part 2
mengenai overloading methods PHP. Seperti yang dibahas sedikit mengenai
overloading PHP dan memang berbeda dengan java. Konsep overloading di PHP
lebih pada mengetasi permasalahan, dimana programmer mengakses member
properti atau fungsi yang tidak ada didalam kelas tersebut,
maka akan otomatis dieksekusi olehnya. Dan di PHP dikenal juga dengan
Magic Method dan terdapat didalamnya overloading methods.
About Magic Method __set, __get, __call, __isset
Okey kita langsung pada contoh saja, dimana overloading terdapat fungsi
__set, __get(), __isset(), __isset, __call
__set() : akan dieksekusi jika kita melakukan pemanggilan pada variabel
yang bukan bagian dari kelas, maksudnya jika kita memanggil suatu
variabel yang tidak ada dalam kelas maka fungsi __set() akan
dieksekusinya sebagai pengalihannya dan satu lagi fungsi __set() juga
akan dijalankan jika properti/variabel yang visibilitynya private dan
kita mencoba mengaksesnya secara langsung maka akan dalihkan pula ke
method __set() dan artinya private sama dengan memanggil
properti/variabel yang tidak ada.
1. __set()
<?php class MagicMethodSet { private $nama = "Rifki" public function setNama( $nama ) { $this ->nama = $nama ; } public function getNama() { return $this ->nama; } public function __set( $vn , $vt ) { echo "data {$vn} <br />" ; echo "data {$vt}<br />" ; echo "data tidak dapat diatur <br />" ; } } $objek = new MagicMethodSet(); $objek ->nama= "John" ; ?>
|
2. __get()
Digunakan untuk membaca data yang tidak dapat diakses property
3. __call()
Method yang tidak dapat diakses dalam konteks objek
<?php class MagicMethodCall { public function __call( $name , $arguments ) { echo "calling method '$name' <br />" . implode( '|' , $arguments ); } } $obj = new MagicMethodCall(); $obj ->test( 'foo' , 'bar' , 'fobar' ); ?>
|
Summary
Magic Method __set()
bisa kita lihat bahwa properti yang kita buat itu private sementara
kita mencoba akses dan mengubahnya secara langsung, maka akansecara
otomatis mengalihkan terhadap fungsi __set().
sumber : http://blog.rifkilabs.net/belajar-oop-php-overloading-part-2.html
No comments:
Post a Comment