Perché getcwd () restituisce / in __destruct ()?

Ho appena notato che getcwd () restituisce "/" se chiamato all'interno della function magica __destruct (), mentre in qualsiasi altro metodo restituisce il path previsto.

Hai una spiegazione per questo?

È un comportmento di SAPI

"I distruttori chiamati durante lo spegnimento dello script hanno già inviato le intestazioni HTTP.La directory di lavoro nella fase di spegnimento dello script può essere diversa con alcuni SAPI (ad esempio Apache)."

Da http://php.net/manual/en/language.oop5.decon.php

Ma come menzionato in altre risposte ci sono molti modi per get il path relativo attuale. Se lo hai modificato durante il runtime, assicurati di prendere nota da qualche parte all'interno dell'object.

C'è un vecchio bug .

Invece di getcwd() , potresti usare __FILE__ ?