На самом деле, PHP будет пытаться уничтожать объекты в правильном порядке, так что это довольно безопасно (учитывая, что если вы пытаетесь что-то сохранить, это означает, что вы все еще держите ссылку на него).Вам нужно знать, что создание исключения во время деструктора вызовет фатальную ошибку, даже если есть ловушка.Вы можете поиграть с примерами, и не так-то просто заставить PHP потерпеть неудачу при обычных ссылках, вот простой способ заставить PHP сойти с ума с деструкторами, чтобы он не знал, как их завершить, но, как я уже сказал, это не то, что вы обычно находитев вашем коде:
<?php
class A
{
public $b;
function eco()
{
echo 'AAA';
}
function __destruct()
{
$b->eco();
}
}
class B
{
public $a;
function eco()
{
echo 'BBB';
}
function __destruct()
{
$a->eco();
}
}
$a = new A;
$b = new B;
$a->b = $b;
$b->a = $a;