To jest mój pierwszy wpis do stackoverflow, ale te wątki bardzo mi pomogły!Czy są jakieś przypadki, gdy destruktor w PHP NIE jest wywoływany?
Anywho, na moje pytanie ... czy są jakieś przypadki, gdy destruktor w PHP NIE jest wywoływany? Powodem, dla którego pytam, jest to, że mam klasę mapperów, która mapuje dane do obiektów iw konstruktorze, zaczynam transakcję, a w destruktorze wezwę commit (będę również miał funkcję członka, która może również wykonać zlecenie , Jeśli to konieczne). Jeśli istnieją przypadki, gdy destruktor nie jest wywoływany, chciałbym wiedzieć, więc mogę przewidzieć, że to się dzieje i odpowiednio zaplanować.
Dziękuję bardzo!
Dziękujemy! :) Widziałem ten fragment z podręcznika, ale pomyślałem, że postaram się też być bezpieczny, prosząc również o to. Właśnie przetestowałem, aby zobaczyć, co się stało, gdy wystąpił błąd krytyczny. Wszystko, co zrobiłem, to utworzony członek, który próbuje wywołać nieistniejącego członka. Destruktor NIE został wywołany. To oczywiście wywołuje się z ostrzeżeniami i poniżej. W przeciwnym razie nie mogę wymyślić żadnych innych instancji, które można sprawdzić, aby sprawdzić, czy zostaną wywołane. Po prostu przyjmuję, że to robi i przeprowadza szeroko zakrojone testy! Jeszcze raz dziękuję! –
@Logan nie ma za co. Interesujące w tym fatalnym błędzie: zadziałało to dla mnie, prowokując jednego przy użyciu '$$ fake();} Może to zależy od rodzaju błędu. Sprawdź także akapit, który właśnie dodałem, z pewnymi przemyśleniami na temat ogólnej idei. –
dzięki za dodatkowe informacje! Właśnie przetestowałem, aby zobaczyć, co mogę zrobić w destruktorze. Do tej pory wiem, że mogę wywołać funkcję składową tej samej klasy i funkcję składową innej klasy (utworzoną z konstruktora). Może mogę zrobić to, co chcę zrobić, dodam kolejny komentarz, gdy się dowiem. –