class SystemConfig extends BaseModel
{
// 數(shù)據(jù)表名稱
protected $name = 'system_config';
// 當(dāng)前模型實(shí)例緩存
private static ?SystemConfig $_instance = null;
/**
* 獲取當(dāng)前模型實(shí)例
* @return SystemConfig
*/
public static function instance(): SystemConfig
{
if (self::$_instance === null) self::$_instance = new self();
return self::$_instance;
}
}
請問 Webman/thinkorm 能不能使用單例模式 是否會(huì)相互影響?
不可以,靜態(tài)變量常駐內(nèi)存下一次請求并不會(huì)銷毀,單例是線程不安全的會(huì)重復(fù)使用,原理類似springMVC 的@Scope注解,static類型是存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū)的,而方法和類是在堆棧中,程序執(zhí)行后static類型不會(huì)隨著堆棧釋放而釋放,它的值仍是上一次執(zhí)行的值,你寫個(gè)demo試試就知道了