嗨,我有一个奇怪的问题,我正在写一个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