class SystemConfig extends BaseModel
{
// 數(shù)據(jù)表名稱(chēng)
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;
}
}
請(qǐng)問(wèn) Webman/thinkorm 能不能使用單例模式 是否會(huì)相互影響?
不可以,靜態(tài)變量常駐內(nèi)存下一次請(qǐng)求并不會(huì)銷(xiāo)毀,單例是線(xiàn)程不安全的會(huì)重復(fù)使用,原理類(lèi)似springMVC 的@Scope注解,static類(lèi)型是存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū)的,而方法和類(lèi)是在堆棧中,程序執(zhí)行后static類(lèi)型不會(huì)隨著堆棧釋放而釋放,它的值仍是上一次執(zhí)行的值,你寫(xiě)個(gè)demo試試就知道了