Z tego co mi wiadomo samozagłada nie jest możliwa. Możesz natomiast "zniszczyć" dostęp do obiektu lub przynajmniej zwolnić trochę pamięci w ten sposób:
<?php
class Foo
{
public function doSomethingAndDie( &$object )
{
// doSomething
$object = null;
}
}
$foo = new Foo();
$foo->doSomethingAndDie( $foo );
?>
Kod $foo->doSomethingAndDie( $foo ) wygląda głupio ale do $this nic się nie da przypisać a potrzebna referencja do obiektu.
Wynik: $foo ciągle istnieje ale jest null a zaraz po $object = null wywoływany jest destruktor klasy.
Nie jest to dokładnie samodestrukcja obiektu ale temat wydał mi się ciekawy i musiałem sprawdzić.