PHP函数在每次执行脚本时将变量递增1

PHP函数在每次执行脚本时将变量递增1,php,variables,cron,increment,execution,Php,Variables,Cron,Increment,Execution,是否可以在每次执行脚本时将变量或数组增加1 例如,我执行脚本,它将变量设置为$increment='1' 然后我关闭脚本,30分钟后再回来执行脚本 这次变量需要是$increment='2' 脚本将每30分钟从cron运行一次,总共运行8次 在第8次执行之后,需要将变量回绕到$increment='1' 这是否可以通过会议进行?是否可以为cli sapi设置会话 或者更容易输出一个带有下一个增量的文本文件,然后从文本文件中提取值 非常感谢您的帮助。在调用脚本之间,您必须将变量的值持久化到非易失性

是否可以在每次执行脚本时将变量或数组增加1

例如,我执行脚本,它将变量设置为
$increment='1'

然后我关闭脚本,30分钟后再回来执行脚本

这次变量需要是
$increment='2'

脚本将每30分钟从cron运行一次,总共运行8次

在第8次执行之后,需要将变量回绕到
$increment='1'

这是否可以通过会议进行?是否可以为cli sapi设置会话

或者更容易输出一个带有下一个增量的文本文件,然后从文本文件中提取值


非常感谢您的帮助。

在调用脚本之间,您必须将变量的值持久化到非易失性源。此外,如果几乎可以同时调用脚本(通常情况下),则必须考虑竞争条件。


最好的办法是将变量存储在维护事务安全性的数据库中。即使是最便宜的网络主机也提供某种形式的数据库来满足这一要求。。。具体细节取决于您的特定设置。

将计数器值存储在数据库中,并在执行脚本更新计数器时使用+1

示例脚本

$conn = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

if($query = $conn->query("YOU ACTION QUERY HERE"))
{
    // Here you call your actions of script

    /* Increment the counter field here. */
    $conn->query("UPDATE table SET counter = counter + 1");
}

$conn->close();

注意它的简单逻辑是每次执行脚本时将变量递增1。

您可以将变量值存储在数据库中,并在执行脚本时获取该变量并递增1。假设我不想使用数据库。我可以将值存储在数组中,对吗?@Mike如果不想使用数据库,您需要将值存储在
cookie
file
等位置。脚本将每30分钟调用一次,总共调用8次。我的数据库可以是一个数组,不是吗?我刚想到这个。我还可以在脚本中设置8个变量。var1、var2等,并根据当前cron运行的服务器时间从这些变量中提取值。总共有8个cron作业。如果cron作业1在凌晨1点开始,那么变量1有一个If语句,表示如果当前时间在凌晨1点到凌晨1:29之间,则使用该值。当然,但前提是您确定时间——但是,如果您可以根据时间从功能上计算出预期值,那么为什么您要让自己经历任何类型的变量的大脑损伤?只需编写一个函数,根据当前时间生成值,就可以了。我还没看到前面那么远。但是是的,我确定时间。每个cron都将在特定的时间进行设置。这应该可以正常工作吗<代码>日期默认时区设置('America/Utah');//MDT$当前日期=日期('H:i:s');如果($current_date>='00:00:00'){$increment='1';}elseif($current_date>='00:30:00'){$increment='2';}elseif($current_date>='01:00:00'){$increment='3'}
谢谢。当我想使用数据库作为存储时,我会记住这一点。@Mike您现在想使用什么?我只需要它在每次执行脚本时将值增加1。示例:
website.com/file1.txt
,然后在下一次执行时
website.com/file2.txt
。我刚才看到了这个问题,难道你不能让一个
inc.txt
文件存储当前值,每次运行脚本时,只需增加它并使用模板
文件{$inc}.txt
创建一个新文件。