class SystemConfig extends BaseModel
{
// 数据表名称
protected $name = 'system_config';
// 当前模型实例缓存
private static ?SystemConfig $_instance = null;
/**
* 获取当前模型实例
* @return SystemConfig
*/
public static function instance(): SystemConfig
{
if (self::$_instance === null) self::$_instance = new self();
return self::$_instance;
}
}
请问 Webman/thinkorm 能不能使用单例模式 是否会相互影响?
我记得手册有说,webman单例是请求间共享的,请求间是否互相影响看用法
不可以,静态变量常驻内存下一次请求并不会销毁,单例是线程不安全的会重复使用,原理类似springMVC 的@Scope注解,static类型是存储在静态存储区的,而方法和类是在堆栈中,程序执行后static类型不会随着堆栈释放而释放,它的值仍是上一次执行的值,你写个demo试试就知道了