在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP/ thinkphp5 中有關(guān)源代碼上的一個問題

thinkphp5 中有關(guān)源代碼上的一個問題

1、問題

我自己在 tp5.1的源碼的時(shí)候,看到 注冊錯誤和異常處理機(jī)制的時(shí)候,在 error.php 中看到一段代碼不是很理解

public static function appError($errno, $errstr, $errfile = '', $errline = 0)
    {
        $exception = new ErrorException($errno, $errstr, $errfile, $errline);
        if (error_reporting() & $errno) {
            // 將錯誤信息托管至 think\exception\ErrorException
            throw $exception;
        }

        self::getExceptionHandler()->report($exception);
    }

這是error的處理函數(shù),
我對于其中 if (error_reporting() & $errno) 這一段特別不理解。

這個位運(yùn)算 在這里有什么意義?

回答
編輯回答
心沉

如果顯示錯誤(error_reporting() > 0)且有錯誤產(chǎn)生($errno > 0),則拋出異常
否則只記錄錯誤

2018年7月10日 20:05
編輯回答
柚稚

整段代碼的作用是將你關(guān)注的錯誤轉(zhuǎn)化成異常處理,否則出現(xiàn)錯誤它就按照錯誤的處理流程:記錄日志,而處理異常的流程里面除了記錄日志以外,它還會往客戶端發(fā)送對應(yīng)的響應(yīng)。其中那段位運(yùn)算就是用來判斷發(fā)生的錯誤是不是你關(guān)注的錯誤

2017年8月10日 08:27