__construct() (двойное нижнее подчеркивание) автоматом вызывается при создании объекта, __destruct() (двойное нижнее подчеркивание) при уничтожении (что в php происходит автоматически по достижению конца файла)

<?php
class MyClass {
public $prop1 = 'Свойство класса "MyClass"';
public function __construct(){
echo 'Создан класс "', __CLASS__,'"<br/>';
}
public function getProperty(){
return $this -> prop1."<br/>";
}
public function setProperty($newval){
$this -> prop1 = $newval;
} 
public function __destruct(){
echo 'Уничтожен класс "', __CLASS__,'"<br/>';
}
}
$obj = new MyClass;
echo $obj -> getProperty();
echo "Конец файла.<br/>";
?>

выведет на странице:

Создан класс "MyClass"
Свойство класса "MyClass"
Конец файла.
Уничтожен класс "MyClass"

 

Вызвать деструктор можно явно, уничтожив объект с помощью функции unset();

<?php
class MyClass {
public $prop1 = 'Свойство класса "MyClass"';
public function __construct(){
echo 'Создан класс "', __CLASS__,'"<br/>';
}
public function getProperty(){
return $this -> prop1."<br/>";
}
public function setProperty($newval){
$this -> $prop1 = $newval;
} 
public function __destruct(){
echo "Удаление класса ".__CLASS__." прошло успешно"."<br/>";
}
}
$obj = new MyClass;
echo $obj -> getProperty();
unset($obj);
echo "Конец файла.<br/>";
?>

Получим:

Создан класс "MyClass"
Свойство класса "MyClass"
Уничтожен класс "MyClass"
Конец файла.