【发布时间】:2016-06-27 00:27:44
【问题描述】:
我一直在寻找一种在 php 中只运行一次代码的方法。我想在网页的开头创建和设置一个变量,每当我调用该文件时,代码都会忽略该行。
我发现 this 基本上有两个建议:setting a session variable 和 creating a lock file 我不想这样做,因为可能同时有很多用户,我需要为每个用户设置一个锁定文件其中之一。
我尝试了第一个选项,但它不起作用。
这是我的两个文件:
config.php
<?php
if (at the beginning){
$variable = something
echo 'hello';
}
else
do something
?>
second.php
<?php
require_once 'config.php'
//do some other stuff
?>
每当调用 second.php 时,它都会在网页中打印 'hello',因此 if (at the beginning) 返回 true,即使它不是在开头。请注意,我检查是否以if(!isset($_SESSION['done'])){ $_SESSION['done'] = 'done'; }开头
我想知道我的错误是什么,我该如何解决这个问题。任何帮助表示赞赏。
【问题讨论】:
-
您希望它在每个请求、每个会话、每年一次运行一次吗?
-
@RolandStarke:每当请求网页时,即每个打开网页的用户。
-
所以缺少的否定只是一个错字?如果您做出影响程序行为的更改,请发表评论。
-
@syck: 是的,我直接从
http://stackoverflow.com/a/9682456/2021883复制粘贴,他/她弄错了,我也警告过他/她。但它已经在我的代码中被否定了。 -
@smttsp 如果您只包含带有
require_once的文件,那么每个请求不应执行多次
标签: php session isset require-once