php – 使用register_shutdown_function()时,为什么我的’shutdown callback’无效?

警告:register_shutdown_function():无效的关闭回调

trait ErrorTrait {

        public function shutDownFunction() { 
            $error = error_get_last();
                // fatal error, E_ERROR === 1
                if ($error['type'] === E_ERROR) { 
                    //do your stuff     

                    $messageStore="Using $this when not in object context";

                    if (strstr ( $error['message'],$messageStore))

                    {
                        echo "found it";

                    }

                } 
                }




        public function shutdown_function()
        {
        register_shutdown_function('shutDownFunction');
        } 

}

我在我的主类中使用这个特性并从中调用函数

    use ErrorTrait;

     public function test()
{   self::shutDownFunction();


    self::shutdown_function(); }

然后在这一点上,我在一个名为“run”的函数中调用test中的函数

我所做的只是简单地调用函数.

      public function run()
        {
        self::test ();
          // Rest of code}

关于为什么会导致问题的任何想法?

解决方法:

您正在将字符串而不是可调用字符传递给register_shutdown_function.电话应该是这样的

register_shutdown_function([$this, 'shutDownFunction']);
上一篇:用Java提供特征的库或语言扩展?


下一篇:python – 关闭TraitsUI窗口而不单击“确定”