php - PHP如何在脚本关闭时使用对象析构函数中的trigger_error触发用户错误?

标签 php error-handling destructor

在实现某些类时,我遇到了一个小问题:

如果脚本结束并且由于脚本完成而调用了destructors,则我想偶尔触发一个错误。

我以为 trigger_error() 函数会有用。但是,如果error_reporting(-1)不再将触发的错误发送到STDOUT或STDERR-可以这样做(例如,如果不在脚本的__destructor/termination阶段内,则trigger_error会按预期工作)。

如果我回显某些消息,它将被发送到STDOUT(CLI模式)。

我现在想知道

  • 在应用程序的此阶段如何触发错误?
  • 和/或替代地,我如何检测到由于脚本已成功结束而当前正在关闭的脚本?

  • 注意:我测试了 connection_status() ,但是对我来说是没有用的,因为它只与连接处理有关,而与连接无关。我想知道是否有一些功能对脚本执行状态(启动,运行,退出)相同。

    简化示例代码

    这是一些简化后的示例代码来说明此问题。自然只有在对对象有意义时才触发错误:
    <?php
    class TriggerTest
    {
        public function __destruct()
        {
            trigger_error('You should have missed something.');
        }
    }
    $obj = new TriggerTest;
    exit();
    

    问题是,trigger_error()被执行了,但是错误没有出现在任何地方。

    最佳答案

    如果您强制将错误报告设置为特定设置,触发错误,然后将错误报告设置回其正常形式,该怎么办?

    关于php - PHP如何在脚本关闭时使用对象析构函数中的trigger_error触发用户错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6227000/

    相关文章:

    php - 使用mysql在3d中找到欧几里德距离的最有效方法是什么?

    javascript - 单击打印按钮页面后重定向到另一个页面javascript

    PHP Curl - 仅下载 X 字节?

    objective-c - NSError、Swift 和可空性

    c++ - 如果对象从堆中分配动态内存,当对象超出范围时它会自动取消分配还是我需要析构函数?

    php - 自定义验证设计php、mysql

    php - 如何在 PHP 中获得有用的错误消息?

    javascript - 获取错误(已在 if 语句中定义变量)

    c++ - 在临时字符串上使用 string::c_str

    c++ - 程序终止时调用的析构函数