我現(xiàn)在使用了beforeAction和afterAction,然后我在自己寫的某個方法里定義了一個變量,想要在afterAction里使用,如果我直接使用$this->val = xxx這樣,那么所有這個線程的用戶都共用這個變量了吧?我要如何定義某個用戶自己的變量并在afterAction里使用呢?難道只能使用session?多幾個變量感覺就是session濫用了
每個進(jìn)程是獨立的,每個進(jìn)程當(dāng)前只會處理一個人的,所以你的這個:那么所有這個線程的用戶都共用這個變量了吧 是不成立的.webman現(xiàn)在是多進(jìn)程阻塞模式,不是異步非阻塞模式
通俗點說,一個進(jìn)程相當(dāng)于一個門,所有人都在門口排隊,大家必須等第一個進(jìn)去,出來,緊跟著門口的第二個人才能進(jìn)去.所以,只要你在beforeAction重置了值,不存在說第一個定義了變量,會被第二個人用到因為他們不是同時執(zhí)行的,而是順序執(zhí)行的.
但是你忘記了一點,controller是駐留在內(nèi)存的,$this->val的值也會被留下來了,我也測試了,a用戶設(shè)置了一個變量,然后b用戶未設(shè)置這個變量,但是b用戶進(jìn)去打印出來的是a用戶設(shè)置的變量值