Pada pemrograman berorientasi object di PHP, ada beberapa function / method dengan nama khusus yang disediakan oleh PHP yang ditandai dengan dua garis bawah(__) yang akan memicu / memanggil action tertentu. Function tersebut seperti __construct(), __destruct(), __call() dll.

__construct()

Function __construct() akan dipanggil ketika suatu object di inisialisasi atau dibentuk. Contoh :

class Bapak{

private $warna_rambut = 'hitam';
private $warna_kulit = 'sawo matang';
public function __construct(){
echo "object dari class Bapak dibuat";
}

public function makan(){
echo 'makan dengan tangan kanan';
}

}

ketika membuat object dari class Bapak seperti berikut,

$bapak = new Bapak();
maka secara otomatis function __construct() dikalankan dengan contoh di atas mengeluarkan pesan
 "object dari class Bapak dibuat".

__destruct()

 __destruct() merupakan kebalikan dari function __construct(). __destruct() dijalankan ketika kita menutup object / membuang object dari class yang sudah tidak digunakan. Ketika kita membuat sebuah object, kita sedang menggunakan memori untuk menyimpan object tersebut jadi ketika object sudah tidak terpakai, tidak serta merta memory menghapus object tersebut. Jadi dengan menggunakan __destruct() kita bisa melakukan sesuatu ketika object tersebut tidak terpakai seperti menulis log, menghapus file yang sudah tidak digunakan dll. Contoh penggunaan :

class Bapak{

private $warna_rambut = 'hitam';
private $warna_kulit = 'sawo matang';
 
    public function __construct(){
echo "object dari class Bapak dibuat";
$this->logfile_handle = fopen('/tmp/log.txt', 'w');
}

public function __destruct(){
fclose($this->logfile_handle);
}

public function makan(){
echo 'makan dengan tangan kanan';
}

}
pada contoh di atas, ketika object dibuat maka akan menjalankan function __construct() yang melakukan operasi baca file dan ketika object dihancurkan atau tidak digunakan, maka function __destruct() dijalankan untuk menutup file tersebut.

__toString()

Function __toString() berguna ketika kita ingin memanggil sebuah object dan mengeluarkan sesuatu string lewat object tersebut. Contoh :

class Bapak{

private $warna_rambut = 'hitam';
private $warna_kulit = 'sawo matang';

public function __construct($name){
$this->name = $name;
}

public function __toString(){
echo $this->name." adalah object dari class Bapak";
}

public function makan(){
echo 'makan dengan tangan kanan';
}

}

dengan menggunakan function __toString() kita bisa mendapatkan output object dengan cara sebagai berikut.

$bapak = new Bapak('Ady');
echo $bapak; // Ady adalah object dari class Bapak

ada beberapa lagi function "magic" yang disediakan oleh PHP seperti __set(), __get(), __sleep(), __wakeup(), __clone() yang penggunaannya bisa sangat bermanfaat dalam efisiensi code pemrograman. Sekian tulisan saya kali ini, kita sambung dilain kesempatan.