我有一个运行良好的代码,但我对此有一些问题。我不理解某些东西的逻辑。代码为:
<?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()>=($_SESSION['t0']+3))不总是真的,因为会话[t0]=time()导致$_SESSION['t0']每秒更新一次?
谢谢!
-
第一个echo语句确实被执行,但它只在第一次时发生。一旦会话启动,
$_SESSION['t0']
的值总是被设置的,所以if条件总是返回false。 -
当代码执行后经过3秒时,
time()>=($_SESSION['t0']+3)
条件为true。因此,如果你在2秒钟后重新加载页面,它将不会被执行。