swoole_serverServer運行期一旦發生致命錯誤,那麼客戶端連線將無法回應。
如Web伺服器,如果有致命錯誤應向客戶端發送Http 500 錯誤訊息。 (建議學習: swoole視訊教學)
在PHP中可以透過register_shutdown_function error_get_last 2個函數來捕捉致命錯誤,並將錯誤傳送給客戶端。
具體程式碼範例如下:
register_shutdown_function('handleFatal'); function handleFatal() { $error = error_get_last(); switch ($error['type'] ?? null) { case E_ERROR : case E_PARSE : case E_CORE_ERROR : case E_COMPILE_ERROR : $message = $error['message'] . PHP_EOL; if (isset($_SERVER['REQUEST_URI'])) { $message .= '[QUERY] ' . $_SERVER['REQUEST_URI']; } // log or send: // error_log($message); // $server->send($fd, $message); break; } }
以上是swoole怎麼捕捉php錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!