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中文网其他相关文章!