用PHP替换代码块


Alternating blocks of code with PHP

我有一个表单,用户可以在其中输入一段信息。一旦他们提交表单,它就会调用我的php脚本,它会做一些事情并吐出信息。

php脚本进行网络调用,我正在尝试设置它,以便代码在一个url和另一个url之间交替。

我尝试过使用getter和setter来实现这一点,但我认为问题在于没有持久变量,所以总是调用第一块代码。

有没有一种方法可以在PHP中存储变量,这样我就可以在不同的会话之间交替使用代码?因此,如果一个唯一的用户使用该表单,它将调用第一个url,然后另一个唯一用户或同一个用户输入另一条信息,它将改为调用备用url。

您可以将自己的变量添加到SESSION数组中。这将在页面加载之间被"记住"。

if(!isset($_SESSION['MyOwnSessionVariable']))
  $_SESSION['MyOwnSessionVariable'] = "New data";
$MySessionData = $_SESSION['MyOwnSessionVariable'];

当您第一次加载页面时,$_SESSION['MyOwnSessionVariable']将不存在。这就是您可以知道何时初始化的方法。

每次加载页面后,$_SESSION['MyOwnSessionVariable']将为"新数据";$_SESSION变量是每个会话的,因此当您同时有多个用户时,这不是问题。

有多种方法可以实现这一点,具体取决于所需的行为。如果您希望一个唯一的用户总是看到相同的URL,但不同的用户看到随机选择的URL,只需将其写入会话即可。

无论你是否想要任何会话亲和力,你都可以进行掷硬币(随机选择)。因此,如果你想要严格的交替选择,而不是随机的均匀分布,你必须以某种方式保持状态(DB、文件等)。

如果您使用的是APC或Memcache,则可能会得到与持久化状态相同的结果,而不会影响性能。