gpt4 book ai didi

PHP递归函数问题

转载 作者:行者123 更新时间:2023-11-29 13:26:46 25 4
gpt4 key购买 nike

我在使用 getNext() 函数时遇到问题...

如果isTaken() == true,它会更新last,但我不确定它是否调用getNext()函数,因为该函数永远不会返回 $next

如果isTaken() == false,则返回$next

有什么想法吗?

function isTaken ($id){
$sql = "SELECT asset_no FROM tb_asset WHERE asset_no='" . $id . "'";
$result = mysql_query($sql) or die(mysql_Error());
if (mysql_num_rows($result)) return true;
else return false;
mysql_free_result($result);
}


function getNext(){
$sql = "SELECT last FROM app_asset";
$result = mysql_query($sql) or die (mysql_error());
$last = mysql_fetch_array($result);
mysql_free_result($result);

$next = ++$last['last'];

if (isTaken($next)){
$sql = "UPDATE app_asset SET last='" . $next . "'";
mysql_query($sql) or die (mysql_error());
getNext();
} else {
return $next;
}
}

最佳答案

正如 Sable Foste 指出的那样,您始终需要一个 return 语句。但是,就您的情况而言,您的代码似乎需要修改为

if (isTaken($next)){
//code
return getNext();
} else
return $next;

因此,一旦 isTaken($next) 为 false,该函数将停止递归并返回

关于PHP递归函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20023981/

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