为什么这个全局变量不在匿名函数中设置?
$GLOBALS['failed'] = "no";
set_error_handler(function($errno, $errstr) {
$GLOBALS['failed'] = "yes";
});
a_function_that_triggers_the_above_function();
echo $GLOBALS['failed']."\n"; # => "no"
我 100% 确定会触发该匿名函数。为什么 GLOBALS 值没有改变?
$GLOBALS['failed'] = "no";
set_error_handler(function($errno, $errstr) {
$GLOBALS['failed'] = "yes";
});
a_function_that_triggers_the_above_function();
echo $GLOBALS['failed']."\n"; # => "no"
That anonymous function is triggered, I'm 100% sure. Why isn't the GLOBALS value changed?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不确定您在触发错误的特定函数中执行的操作,但使用这部分代码:
我得到以下输出:
这表明:
(我使用的是 PHP 5.3.2)
Not sure what you are doing in your specific function that triggers an error, but using this portion of code :
I get the following output :
Which shows that :
(I'm using PHP 5.3.2)