gpt4 book ai didi

php - 如果实时调用,函数会保存不正确的值;手动调用它们会保存正确的值。这是怎么回事?

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:17 24 4
gpt4 key购买 nike

我有一个 (php/mysql) 系统,奖励用户在网站上做的事情。为了这个问题,假设用户每发表 5 条评论就会得到一朵玫瑰。

首页有一个计数器,显示今天获得了多少玫瑰,以及历史上获得了多少玫瑰。大致逻辑如下:

//Save a single, discrete event. $user --> numerical value, 1:1.
function first($user) {
//save values related to $user into TABLE_1;
return second($user);
}

//Calculate the sum() of all numerical events for $user for today and save that.
function second($user) {
//save values calculated from TABLE_1 into TABLE_2;
return third();
}

//Calculate the sum() of all numerical events for all users
function third() {
//save values calculated from TABLE_2 into TABLE_3;
return true/false;
}

当评论被保存时,first() 函数被启动。 first() 在TABLE_1 中保存一条评论事件记录为一行:用户id、事件数值(1,因为保存了1条评论)和时间戳.

接下来,调用second()second() 做了一些数学计算以确定用户是否通过此评论赢得了玫瑰,并在 TABLE_2 中保存了 3 个值:uid、roses_today、timestamp。

这是被搞砸的值(value)。出于某种原因,roses_today 的值与其应有的值不同,有时更高,有时更低。没有规律可循——有些值高得离谱,有些略低,有些恰到好处;这里没有押韵或理由。

还有一个问题:如果我手动调用 second($user),它计算并存储在 TABLE_2 中的值是正确的。此函数似乎只有在实时调用时才会失败。

编辑:那些建议代码不存在或我应该单步执行代码的问题的人,请阅读上一段。这个函数似乎只有在实时调用时才会失败。 手动调用相同的函数会产生正确的结果。

最佳答案

这基本上是一个“我没有给你看的代码有问题”的问题。
因此,我能提供的最佳答案是:安装调试器,如 xdebug和例如netbeans作为前端并单步执行代码。

关于php - 如果实时调用,函数会保存不正确的值;手动调用它们会保存正确的值。这是怎么回事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3399181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com