function genTokenNo()
{
static $i=0;
$i=$i+1;
return str_pad($i, 5, '0', STR_PAD_LEFT);
}
Run Code Online (Sandbox Code Playgroud)
当我在其他文件中调用此函数时,该函数不返回唯一值(递增值).此外,当我在同一个文件(函数的位置)中回显此函数时,它工作正常.我知道静态变量范围的概念,因为我已经尝试过将$ i替换为$ _SESSION ['i']但没有预期的结果.提前致谢.
请注意 的值$i不会保留。因此,每当您向服务器运行新请求时,脚本都会重新加载并$i重置为0.
要在每个用户会话中保留该变量$SESSION['i'],但正如您已经尝试过的那样,这对于每个会话来说都是唯一的,而不是全局的。
fopen要拥有全局唯一的编号,您需要使用// flock/ fread/函数将fwrite其存储在磁盘上fclose。