Просто наблюдение- номера удаленных классов забираются в обратном порядке. Может есть еще какая информация по этой теме Код (PHP): class AAA {} $x1 = new AAA; var_dump($x1); $x2 = new AAA; var_dump($x2); $x3 = new AAA; var_dump($x3); $x4 = new AAA; var_dump($x4); unset($x3); unset($x4); unset($x2); $x5 = new AAA; var_dump($x5); $x6 = new AAA; var_dump($x6); $x7 = new AAA; var_dump($x7); Результат: object(AAA)[1] object(AAA)[2] object(AAA)[3] object(AAA)[4] object(AAA)[2] object(AAA)[4] object(AAA)[3]
не классов а объектов классов. уже пора выражаться грамотно. материалов не встречал но думаю дело в алокейте. выделено фиксированное кол-во памяти под объекты класса. ты ряд из них удалил, мусорщик еще не выполнился поэтому фактически в памяти лежит мусор. при создании нового объекта оптимизатор проверяет есть ли мусор такого класса - мусор есть и на его место залезает новый объект. если бы мусора не было - был бы новый алокейт.