在会话中存储时间

时间:2015-02-23 13:30:06

标签: php session time refresh

我有一个工作正常的代码,但我有一些问题。我不理解某事的逻辑。代码是:

<?php
session_start();

if(!isset($_SESSION['t0'])) 
{
    $_SESSION['t0']=time();
    echo $_SESSION['t0']."if<br />"; //why this is never printed?
}
else 
{

    if(time()>=($_SESSION['t0']+3))
    {
        echo $_SESSION['t0']."else-ul";
        $culoare="rgb(".rand(0,255).",".rand(0,255).",".rand(0,255).")";
        $_SESSION['t0']=time(); 
    }

}
?>

问题是: 1.为什么第一个回声从未打印过? 2.为什么(time()&gt; =($ _ SESSION [&#39; t0&#39;] + 3))并不总是正确的,因为$ _SESSION [&#39; t0&#39;]每次更新第二,因为会话[t0] =时间()?

谢谢!

1 个答案:

答案 0 :(得分:0)

  1. 第一个echo语句确实已执行,但它仅在第一次时发生。在您的会话开始后,始终设置$_SESSION['t0']的值,因此if条件将始终返回false。

  2. 执行代码后经过3秒后,
  3. time()>=($_SESSION['t0']+3)条件为真。因此,如果您在2秒后重新加载页面,则无法执行。