Каков точный порядок деконструкции объекта?
Из тестирования у меня есть идея: FIFO для текущей области.
class test1
{
public function __destruct()
{
echo "test1\n";
}
}
class test2
{
public function __destruct()
{
echo "test2\n";
}
}
$a = new test1();
$b = new test2();
Что дает снова и снова результаты снова и снова:
test1
test2
руководство по PHP является неопределенным (основное внимание уделяется неопределенности): "Метод деструктора будет вызван, как только нет других ссылок к определенному объекту, или в любом порядке во время последовательности выключения."
Каков точный порядок деконструкции? Может ли кто-нибудь подробно описать реализацию порядка уничтожения, который использует PHP? И если этот порядок не согласован между любыми версиями PHP, может ли кто-нибудь определить, какие версии PHP этот порядок изменяется?