__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" Конец файла.