在PHP中将静态类方法注册为关闭函数

ACs*_*ACs 7 php

在PHP中是否可以注册一个关闭函数(with register_shutdown_function()),这是一个在类中实现的静态方法?我的意思是这样的:

//index.php
require_once("modules/Analyzer/Analyzer.php");
register_shutdown_function("Analyzer::log_shutdown");

//Analyzer.php
class Analyzer {
   ...

   public static function log_shutdown(){
      // do some awesome stuff
      Analyzer::screenshot();
   }
}
Run Code Online (Sandbox Code Playgroud)

Sjo*_*jon 12

传递给register_shutdown_function的第一个参数是可调用类型.可调用的静态方法如下所示:

register_shutdown_function(array('Analyzer', 'log_shutdown')); 
Run Code Online (Sandbox Code Playgroud)

从PHP 5.2.3开始,它看起来也可能与您最初发布的内容完全相同


Tan*_*egi 7

可以使用匿名函数:

register_shutdown_function(function(){
    Analyzer::log_shutdown();
});
Run Code Online (Sandbox Code Playgroud)

另外,在分析器中你可以使用这样的调用同一个类:

class Analyzer{
    public static function log_shutdown(){
        self::screenshot();
    }
}
Run Code Online (Sandbox Code Playgroud)