¡Esta es la primera vez que publico en stackoverflow, pero estos hilos me han ayudado tremendamente!¿Hay alguna instancia en la que NO se invoque el destructor en PHP?
Anywho, en mi pregunta ... ¿hay algún caso cuando NO se llama al destructor en PHP? La razón por la que pregunto es porque tengo una clase mapper que mapea datos en objetos y en el constructor, inicio una transacción y en el destructor llamaré a un commit (también tendré una función miembro que también puede hacer el committal , si necesario). Si hay algún caso en el que no se llame al destructor, me gustaría saberlo para anticiparlo y planificarlo adecuadamente.
Muchas gracias!
¡Gracias! :) Había visto ese fragmento del manual pero pensé que lo intentaría y estaría seguro al preguntar aquí también. Acabo de probar para ver qué sucedió cuando se produjo un error fatal. Todo lo que hice fue crear un miembro que intenta llamar a un miembro inexistente. El destructor NO fue llamado. Sí, por supuesto, recibe una llamada con advertencias y más abajo. De lo contrario, no puedo pensar en ninguna otra instancia que se pueda verificar para ver si se llama. ¡Asumo que sí y hago pruebas exhaustivas! ¡Gracias de nuevo! –
@Logan de nada. Algo interesante sobre el error fatal: funcionó para mí al provocar uno usando '$$ fake();' Tal vez depende del tipo de error. Además, consulte el párrafo que acabo de agregar con algunas reflexiones sobre la idea general. –
gracias por la información extra! Acabo de probar para ver si puedo hacer algo en un destructor. Hasta ahora, sé que puedo llamar a una función miembro de la misma clase y a una función miembro de una clase diferente (instanciada del constructor). Tal vez pueda hacer lo que quería hacer, publicaré otro comentario una vez que me entere. –