簡體   English   中英

PHP spl_autoload:如何確定自動加載功能請求者

[英]PHP spl_autoload: how to determine the autoload function requestor

spl_autoload_register注冊的函數是否有辦法知道正在調用它的源文件/類/方法? 當我沒有找到一個類時,我希望能夠輸出一個有用的錯誤,因此我知道需要更新哪個源文件。 例如:

spl_autoload_register(function($className)
{
    $classFile = 'include/' . $className . '.php';
    if (!is_readable($classFile))
    {
        echo 'Could not load ' . $className . ' requested by ' . $source; 
        // how to figure out $source -----------------------------^^
        return false;
    }

    include $classFile;
    return false;
}

這就是堆棧跟蹤的作用。 它向您顯示導致錯誤的事件鏈(並可以提供類,行號等詳細信息)

嘗試var dumping debug_backtrace()來查看它返回的數組以及它是否有幫助。

spl_autoload_register(function($className)
{
    var_dump(debug_backtrace());

    ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM