我有一个工作正常的代码,但我有一些问题。我不理解某事的逻辑。代码是:
<?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] =时间()?
谢谢!
答案 0 :(得分:0)
第一个echo语句确实已执行,但它仅在第一次时发生。在您的会话开始后,始终设置$_SESSION['t0']
的值,因此if条件将始终返回false。
time()>=($_SESSION['t0']+3)
条件为真。因此,如果您在2秒后重新加载页面,则无法执行。