2010-04-21 32 views
1

在PHP中,是否可以獲取實例化對象的腳本的文件名?實例化對象的腳本的文件名

例如,我有一個名爲file.php的腳本,它創建了一個類Class的新實例。該類有一個Error對象,在觸發時會返回一些錯誤信息。我想顯示file.php引發了錯誤。

回答

2

函數debug_backtrace()可能有用嗎?它顯示從下到上的執行流程。

+0

這隻會在Class的構造函數內觸發錯誤時才起作用,否?也許這就是他想要的,我不知道。 – Savageman 2010-04-21 09:44:51

+0

謝謝,正是我在找的! – Calvin 2010-04-21 09:45:32

+0

@Savageman,是的,這就是它被觸發的地方,但這也是知道的。 – Calvin 2010-04-21 09:47:00

1

error_get_last返回的數組是否滿足您的需求?該函數'返回一個關聯數組,描述鍵入「type」,「message」,「file」和「line」的最後一個錯誤。如果尚未出現錯誤,則返回NULL。 '

http://www.php.net/manual/en/function.error-get-last.php

+0

這是一個自定義錯誤記者,不是PHP錯誤,但也要感謝這個功能。 – Calvin 2010-04-21 09:49:37

2

作爲啓Sellgren說,可以使用的debug_backtrace()函數。 您也可以拋出異常並獲得回溯。

try 
{ 
    throw new Exception(); 
} 
catch(Exception $e) 
{ 
    print_r($e->getTrace()); 
} 

由於得到一個回溯可能需要一些時間,你應該標杆兩種解決方案,看看哪些是最快的。

順便說一下,請不要將您的錯誤對象作爲Exception的子類嗎?這就是爲什麼例外存在的原因...