l'ultimo destruct viene chiamato quando lo script finisce l'esecuzione, e non durante l'unset($myClass_3);

se capisci questo, forse capisci tutto il resto