Ti suggerisco di rileggere il manuale ufficiale:

http://www.php.net/manual/en/language.oop5.decon.php
PHP 5 introduces a destructor concept similar to that of other object-oriented languages, such as C++. The destructor method will be called as soon as all references to a particular object are removed or when the object is explicitly destroyed or in any order in shutdown sequence.
NON c'è scritto che il metodo __destruct() va richiamato esplicitamente. C'è scritto che verrà richiamato (tra gli altri casi) quando l'oggetto è distrutto esplicitamente.

Per capire cosa significa, confronta l'esempio Example #2 Destructor Example con questo codice:

Codice PHP:
<pre>
<?php
class MyDestructableClass {
   function 
__construct() {
       print 
"In constructor\n";
       
$this->name "MyDestructableClass";
   }

   function 
__destruct() {
       print 
"Destroying " $this->name "\n";
   }
}

$obj = new MyDestructableClass();
$obj null;
print(
"This is the end!");
?>
</pre>