为什么我的关机回拨'使用register_shutdown_function()时无效?

时间:2016-04-27 05:29:19

标签: php compiler-errors shutdown traits

警告: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(); }

然后在这一点上,我在一个名为&#34的函数中调用test中的函数;运行"

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

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

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

1 个答案:

答案 0 :(得分:5)

您正在将字符串而不是可调用字符传递给register_shutdown_function。通话应该看起来像

register_shutdown_function([$this, 'shutDownFunction']);