Php 维护运行之间的状态|会话使用
有不同的方式来运行PHP代码。例如,用户发起的重新加载和用户发起的ajax请求Php 维护运行之间的状态|会话使用,php,Php,有不同的方式来运行PHP代码。例如,用户发起的重新加载和用户发起的ajax请求 什么是保持这些状态之间的最佳方式? < P>认为PHP是分开运行的。两件事: 不要使用全局变量。。。它们是坏的:考虑把“session”类作为静态函数集合,将Session SID作为静态成员VAR。 只需在第二个代码段中创建一个新的会话类: 对于该特定用户,会话id在所有页面视图中都是相同的,因此在第二个代码段中创建新会话()仍将引用在第一个代码段中启动的相同会话 下面是静态实现的样子: // class nam
什么是保持这些状态之间的最佳方式? < P>认为PHP是分开运行的。两件事:
// class names should be camel-cased
class SessionManager
{
protected static $session_id = null;
public static function start()
{
self::$session_id = session_start();
}
// ... and so on
}
// to use
SessionManager::start();
SessionManager::activate('email', $email);
这应该是你真正需要的。当然有很多方法可以做到这一点,但这应该让你开始:)全局语言,顺便说一句,由于很多原因是不好的,但它们也不是很有效。记住PHP本质上是无状态的。。。请求之间不共享任何内容。。。因此,一个请求中的静态类不会与另一个共享(即使它们是并发的)。我将更新上面的答案,以回答您的第二个问题:您的AJAX处理程序是否加载(或直接命中)index.php?如果这是实例化对象的唯一位置,并且AJAX调用没有以任何方式调用index.php,那么就不会为AJAX调用创建对象。
// class names should be camel-cased
class SessionManager
{
protected static $session_id = null;
public static function start()
{
self::$session_id = session_start();
}
// ... and so on
}
// to use
SessionManager::start();
SessionManager::activate('email', $email);