php在析構函式中的工作目錄問題

2021-06-08 23:04:14 字數 419 閱讀 8634

前兩天為了寫乙個日誌類,用到在析構函式中寫檔案,發現了php乙個很怪異的地方,不知道是不是bug,拿出來分享一下

**如下,在析構函式的當前工作目錄竟然變為了apache目錄,害的我寫檔案寫錯地方了

更奇怪的是,我不執行write方法時,析構函式的工作目錄是正確的,也是**的執行目錄,當我執行過write方法後,就一直為apache目錄了

<?php

class get_path

function write()

function __destruct()

}$gl = new get_path();

$gl->write();

ps:上報了php的buglist,laruence說確實是php的bug,說修復的代價比較昂貴,暫時不修復

析構函式中的工作目錄問題

析構函式大家想必都非常熟悉了 php析構函式,相反於建構函式.php呼叫它們來將乙個物件從記憶體中銷毀.預設地,php僅僅釋放物件屬性所占用的記憶體並銷毀物件相關的資源.析構函式允許你在使用乙個物件之後執行任意 來清除記憶體.當php決定你的指令碼不再與物件相關時,php析構函式將被呼叫.在乙個函式...

在析構函式中關閉 SqlConnection 連線

最近在模仿 搭乙個框架,該系統原本是用mysql資料庫的,在析構函式理關閉mysqlconnection連線沒有拋異常,可是我換成了sql server資料庫,在析構函式裡關閉 sqlconnection連線,異常丟擲來了 internal net framework data provider e...

php中的建構函式與析構函式

construct destruct construct 構造方法,當乙個物件建立時呼叫此方法,使用此方法的好處是 可以使構造方法有乙個獨一無二的名稱,無論它所在的類的名稱是什麼.這樣你在改變類的名稱時,就不需要改變構造方法的名稱 destruct 析構方法,php將在物件被銷毀前 即從記憶體中清除...