在 PHP 中,析構函數(destructor)是一個特殊的方法,它會在對象被銷毀時自動調用。要實現日志記錄功能,你可以在析構函數中編寫代碼來記錄相關信息。以下是一個簡單的示例:
class MyClass {
private $logFile;
public function __construct($logFile) {
$this->logFile = $logFile;
}
public function __destruct() {
$this->log("Object destroyed");
}
private function log($message) {
file_put_contents($this->logFile, $message . PHP_EOL, FILE_APPEND);
}
}
$obj = new MyClass("log.txt");
// ... 使用對象進行操作
unset($obj); // 銷毀對象,觸發析構函數
在這個示例中,我們創建了一個名為 MyClass
的類,它有一個私有屬性 $logFile
,用于存儲日志文件的路徑。我們在構造函數中初始化這個屬性,并在析構函數中調用 log()
方法來記錄日志。
log()
方法接受一個消息參數,并將其追加到日志文件中。我們使用 file_put_contents()
函數,傳入 FILE_APPEND
標志以追加內容,而不是覆蓋文件。
當對象被銷毀時,析構函數會自動調用,記錄一條消息到日志文件中。在這個例子中,我們在最后使用 unset()
函數來銷毀對象,從而觸發析構函數。