<code>class Test { public static function test1(){} public static function test2(){} ... } </code>
在執行php程式碼的時候,就掃描靜態方法,不管有沒有include., 效率太低應該不會使用。
在我include 'Test.php'
的時候,會不會掃描類,把靜態方法,載入進記憶體。這時候的話,應該就把所有方法都載入記憶體了。
假如2
不成立,則是否在調用方法Test::test1();
的時候,加載進內存,如果這時候加載的話,是僅加載當前方法,還是加載當前類所有的靜態方法?
這裡有位大神說了下Nginx和Php-fpm進程和線程:https://segmentfault.com/q/10...
如果是這樣的話,一個Php-fpm進程服務一個客戶端,但是如果並發太高,不會有很多進程嗎?按照進程通信來講,不同客戶端的請求,屬於不同的進程,應該不會互相影響,應該進程所佔內存中都有一份靜態方法的緩存,但是如果一個客戶端有多次請求的話,看文章說是阻塞的單線程模型,那應該每次請求都要等上次請求完成才開始執行,是否這時候會清楚靜態方法的緩存,還是繼續保存?如果清除的話,應該就不會共用靜態方法了。