调用自身的PHP函数始终返回null

调用自身的PHP函数始终返回null,php,function,null,return,Php,Function,Null,Return,我已经搜索、研究、诅咒了很多次,并在我的电脑屏幕上反复喊叫,但似乎什么都不起作用 我创建了下面的函数来根据当前日期查询mysql数据库。如果数据库中不存在当前日期,则会生成前几天的日期,并使用新日期再次调用函数本身。这将一直持续到找到匹配项为止,在该匹配项处函数将返回包含所需数据的数组 function getWeekNumber($dateToQuery) { $oneDay = 86400; $timestamp = $dateToQuery; $stringDate

我已经搜索、研究、诅咒了很多次,并在我的电脑屏幕上反复喊叫,但似乎什么都不起作用

我创建了下面的函数来根据当前日期查询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);
一切正常,你会看到我在哪里包括了var_转储来检查结果

函数else子句中的var_dump按预期输出:

array(2) {
    ["Week_Commencing"]=> string(8) "19/05/14"
    ["Week_Number"]=> string(1) "4"
}
但是,当我调用函数时,它总是返回NULL

有人知道为什么会这样吗


提前感谢

返回语句在else块中。当
$result
为真时执行。因此,
$result
似乎是错误的。始终。

返回语句在else块中。当
$result
为真时执行。因此,
$result
似乎是错误的。总是

return getWeekNumber($prevDay);
^^^^^^
如果没有
return
语句,函数就不会神奇地返回值,即使是从递归调用返回


如果没有
return
语句,函数就不会神奇地返回一个值,即使是从递归调用返回的值。

我可以建议最好的PAP-专业的渐进式编程吗?高喊计算机只是入门级…:)此外,还有一种由增长驱动的开发。还有一所学校的教授更倾向于升级而不是异常处理。@hakre哈哈,干杯。。我会调查的!我可以推荐最好的PAP-专业的进取型编程吗?高喊计算机只是入门级…:)此外,还有一种由增长驱动的开发。还有一所学校的教授更倾向于升级而不是异常处理。@hakre哈哈,干杯。。我会调查的!在这种情况下,将不会有
var_dump
,最终脚本将因堆栈溢出而死亡。在这种情况下,将不会有
var_dump
,最终脚本将因堆栈溢出而死亡。我的生命现在结束了!干杯,老兄,我的生活现在结束了!干杯,伙计