首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
1.7.22 里 register_shutdown_function 中注册的方法通过 error_get_last() 获取的内容错误
{{{ <?php register_shutdown_function(function() { $error = error_get_last(); if ($error) { echo "\n\nerror begin===========================\n" .$error['message']. "\n.error end===========================\n\n\n"; } }); $serv = new swoole_http_server("127.0.0.1", 8080); $serv->on('Request', function($request, $response) { new adsfasdfs(); }); $serv->setGlobal(HTTP_GLOBAL_ALL); $serv->start(); }}} 这个是测试代码,发现测试请求后会输出以下内容: {{{ error begin=========================== Uncaught Error: Class 'adsfasdfs' not found in /Users/jonwang/Sites/myqee-v4/bin/test.php:21 Stack trace: #0 [internal function]: {closure}(Object(swoole_http_request), Object(swoole_http_response)) #1 /Users/jonwang/Sites/myqee-v4/bin/test.php(25): swoole_http_server->start() #2 {main} thrown .error end=========================== }}} 实测, $error['message'] 确实产生了一个 Uncaught Error: 错误,并返回的是一个trace而并不仅仅是message内容。 相同的回调代码在apache里运行的结果就是 {{{ Class 'adsfasdfs' not found }}}
发布于9年前 · 0 次浏览 · 来自
提问
H
HBLong
{{{ <?php register_shutdown_function(function() { $error = error_get_last(); if ($error) { echo "\n\nerror begin===========================\n" .$error['message']. "\n.error end===========================\n\n\n"; } }); $serv = new swoole_http_server("127.0.0.1", 8080); $serv->on('Request', function($request, $response) { new adsfasdfs(); }); $serv->setGlobal(HTTP_GLOBAL_ALL); $serv->start(); }}} 这个是测试代码,发现测试请求后会输出以下内容: {{{ error begin=========================== Uncaught Error: Class 'adsfasdfs' not found in /Users/jonwang/Sites/myqee-v4/bin/test.php:21 Stack trace: #0 [internal function]: {closure}(Object(swoole_http_request), Object(swoole_http_response)) #1 /Users/jonwang/Sites/myqee-v4/bin/test.php(25): swoole_http_server->start() #2 {main} thrown .error end=========================== }}} 实测, $error['message'] 确实产生了一个 Uncaught Error: 错误,并返回的是一个trace而并不仅仅是message内容。 相同的回调代码在apache里运行的结果就是 {{{ Class 'adsfasdfs' not found }}}
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2017-05-11
韩
韩天峰
不同SAPI下的行为?
赞
0
回复
2017-05-17
无
无法呼吸的鱼_92835
这个问题与swoole无关,可能与特定PHP版本或SAPI、或者某些扩展改变了这个trace信息有关系。 另外,这段错误信息是否抛出给客户端也是由用户代码决定的,如果你不希望用户看到这些信息,可以只返回一个 Http 500错误页面即可。
赞
0
回复