即使我重新执行(或重新加载)PHP文件,有没有办法阻止代码块或代码中的函数多次运行?
我的意思是,我可以限制某人不止一次执行php脚本吗?我似乎无法找到这样做的方法。
答案 0 :(得分:2)
是的,您可以使用$ _SESSION变量来确定代码是否已执行。会话变量将被设置,直到用户关闭其浏览器。如果您想进一步扩展它,可以设置cookie。有关详细信息,请参阅以下链接。
答案 1 :(得分:2)
如果您正在使用会话,那么您可以在代码执行后在用户的会话数组中设置一个标志:
function doSomething(){
if (empty($_SESSION['completed'])){
//Do stuff here if it has not been executed.
}
$_SESSION['completed'] = TRUE;
}
您还应该检查sesison变量以查看该任务是否先前已执行过。这假定用户可以接受会话cookie。
答案 2 :(得分:1)
只需在计算机中放置一个计数器。如果计数器大于0,则不要做任何事情。计数器变量应该是静态的,因此它会在多次调用中“记住”。
function sample() {
static $call_counter = 0;
if ( $call_counter>0 ) {
return;
}
...
$call_counter++;
}
至于确保文件只执行一次,只需使用“include_once()”而不是“include()”。
答案 3 :(得分:1)
我有一个应用程序可以做到这一点。
我们所做的是在db中创建一个名为version的表,并在其中存储一个版本号。运行脚本时,它将数据库中的版本号与php脚本中的版本号进行比较。并执行将其“升级”到新版本所需的任何内容,然后更新数据库中的版本号。
但是,如果版本表不存在,代码将创建它并将其标记为存储版本零。