php - PHP中的静态类初始化器

我有一个带有一些静态函数的辅助类。类中的所有函数都需要一个“繁重”的初始化函数才能运行一次(就好像它是一个构造函数一样)。

是否有实现此目的的良好做法?

我唯一想到的是调用 init 函数,如果它已经运行过一次(使用静态 $initialized var),则中断其流程。问题是我需要在每个类的函数上调用它。

最佳答案

听起来你最好使用单例而不是一堆静态方法

class Singleton
{
  /**
   * 
   * @var Singleton
   */
  private static $instance;

  private function __construct()
  {
    // Your "heavy" initialization stuff here
  }

  public static function getInstance()
  {
    if ( is_null( self::$instance ) )
    {
      self::$instance = new self();
    }
    return self::$instance;
  }

  public function someMethod1()
  {
    // whatever
  }

  public function someMethod2()
  {
    // whatever
  }
}

然后,在使用中

// As opposed to this
Singleton::someMethod1();

// You'd do this
Singleton::getInstance()->someMethod1();

https://stackoverflow.com/questions/3312806/

相关文章:

php - 如何从访客那里获得真实 IP?

php - 将 stdClass 对象转换/转换为另一个类

php - PHP 中的 session_unset() 和 session_destroy() 有

php - 基于多个 ID 检索 Laravel 模型结果

php - 什么是 PHP 中的工厂设计模式?

php - 使用 curl 下载大文件

php - 一起注释掉 HTML 和 PHP

php - 在 PHP 中如何清除 WSDL 缓存?

javascript - 使用 onclick 执行 PHP 函数

php - 函数只返回字符串中的字母数字字符?