我已经搜索,研究,诅咒了很多,并反复对着我的电脑屏幕大喊大叫,但似乎没有任何效果......
我创建了以下函数来根据当前日期查询 mysql 数据库。如果数据库中不存在当前日期,则会生成前几天的日期,并且该函数会使用新日期再次调用自身。这一直持续到找到匹配项,此时函数返回一个包含所需数据的数组。
function getWeekNumber($dateToQuery) {
$oneDay = 86400;
$timestamp = $dateToQuery;
$stringDate = date("d/m/y", $dateToQuery);
include("inc/dbconx.php");
try {
$STH = $DBH->prepare("SELECT `Week_Commencing`,`Week_Number` FROM weeks WHERE `Week_Commencing` = ?");
$STH->bindParam(1,$stringDate);
$STH->execute();
} catch (Exception $e) {
echo "There was a problem retrieving data from the database";
exit;
}
$result = $STH->fetch(PDO::FETCH_ASSOC);
if ($result == FALSE) {
$prevDay = $timestamp - $oneDay;
getWeekNumber($prevDay);
} else {
$output = array("Week_Commencing" => $result['Week_Commencing'], "Week_Number" => $result['Week_Number']);
var_dump($output);
return $output;
}
}
$weekNumber = getWeekNumber($serverTime);
var_dump($weekNumber);
Run Code Online (Sandbox Code Playgroud)
一切正常,您将看到我在何处包含 var_dumps 来检查结果……
函数 else 子句中的 var_dump 按预期输出:
array(2) {
["Week_Commencing"]=> string(8) "19/05/14"
["Week_Number"]=> string(1) "4"
}
Run Code Online (Sandbox Code Playgroud)
但是,当我调用该函数时,它总是返回 NULL。
有谁知道为什么会这样?
提前致谢
return getWeekNumber($prevDay);
^^^^^^
Run Code Online (Sandbox Code Playgroud)
如果没有该return语句,该函数不会神奇地返回值,即使是从递归调用中也是如此。
| 归档时间: |
|
| 查看次数: |
534 次 |
| 最近记录: |