嗨,我有一個奇怪的問題,我正在寫一個WordPress插件,但這不是關於WordPress本身和更多與PHP有關,所以請閱讀,所以我可以解釋。 WordPress插件被連接起來,以便init()函數被調用...這個工程我可以確認它被調用一次。PHP靜態成員不持有價值
class MyClass
{
static $i=0;
public static function init()
{
self::$i++;
}
public static function dosomething()
{
echo 'i is = ' . self::$i;
}
}
當在Wordpress中第一次使用callinf dosomething()時,它是可以的。然後我有另一個ajax-response.php文件,其中包括上面的類,並再次調用dosomething,它打印i值= 1.
問題是我通過ajax-response.php腳本調用時的值返回爲0?
它就好像它在一個完全不同的內存空間中執行並創建一個新程序,使得靜態成員變量只在同一進程之間共享,而不是多個Web線程。
任何想法?
由於提前,
克里斯
這是正確的。靜態成員的狀態在不同的網絡服務器請求之間不是持久的。如果你想要這種行爲,你需要以另一種方式做到這一點。數據庫,緩存,會話,cookies等,等等等等。 – sberry
感謝您的回覆和大家的幫助 – g18c