Dalam pemrograman class dengan PHP kita akan menjumpai method yang diawali dengan double underscore. Method ini digunakan untuk memberikan response pada suatu event atau kejadian-kejadian tertentu. Sebagai contoh pada artikel Constructor dalam class PHP kita menggunakan __construct yang otomatis dijalankan saat kita membuat object. Kemudian pada artikel Overloading pada class PHP kita membahas menggunakan method __set dan __get untuk memberikan nilai atau mendapatkan suatu nilai dari suatu property yang sebenarnya dideklarasikan sebagai tidak bisa diakses.

Sesuai dengan dokumentasi PHP pada http://php.net/manual/en/language.oop5.magic.php kita mengenal method-method magic seperti berikut ini:

  1. __construct()
    Method ini akan diakses pada saat pembuatan object.
      
  2. __destruct()
    Method ini akan diakses saat object dihapus.
     
  3. __call()
    Method ini akan diakses saat object menjalankan method yang invisible atau tidak didefinisikan
     
  4. __callStatic()
    Method ini akan diakses jika kita menjalankan suatu static method yang invisible atau tidak didefinisikan
      
  5. __get()
    Method ini akan diakses jika program ingin mengambil nilai dari property yang invisible.
     
  6. __set()
    Method ini akan diakses jika program ingin memberikan nilai dari suatu property yang inivisible.
     
  7. __isset()
    Method ini akan diakses jika program menjalankan isset() atau empty() pada property yang tidak bisa diakses.
     
  8. __unset()
    Method ini akan diakses jika program menjalankan unset() pada property yang tidak bisa diakses.
      
  9. __sleep()
    Berhubungan dengan serialisasi object.
     
  10. __wakeup()
     Berhubungan dengan unserialisasi object.
     
  11. __toString()
    Method ini akan diakses jika kita memperlakukan class sebagai string.
     
  12. __invoke()
    Method ini akan diakses jika program memperlakukan object sebagai function.
      
  13. __set_state()
     
  14. __clone()
    Method ini berhubungan dengan cloning object. Saat selesai proses cloning object, method ini akan dijalankan.
     
  15. __debugInfo()
    Method ini akan diakses jika program menjalankan var_dump() pada suatu object.

Informasi lebih lanjut silahkan mengunjungi:
1. http://php.net/manual/en/language.oop5.magic.php .
2. http://php.net/manual/en/language.oop5.overloading.php .
3. http://php.net/manual/en/language.oop5.cloning.php .
4. http://culttt.com/2014/04/16/php-magic-methods/ .
5. http://andrewwoods.net/blog/2015/php-magic-methods/ .

Kunjungi www.proweb.co.id untuk menambah wawasan anda.

Magic method pada class PHP