Py学习  »  DATABASE

包含mysql的递归函数在php中不起作用[duplicate]

sky • 4 年前 • 301 次点击  

有谁能帮我解释一下递归函数为什么不起作用吗?如果第一个参数匹配,则函数返回正确的值。否则,返回值为空。

function stockToDate($base_date, $i) {

  include "../lib/dbconn.php" ;     

  $today = date("Y-m-d") ;
  $base_date = date("Y-m-d", strtotime($base_date . "-1day")) ; 


  $q  = " SELECT txn_date "
      . "   FROM tworking_ymd   "  
      . "  WHERE txn_date = '$base_date' " ;
  $r = mysqli_query($dbc, $q) ;

  if(mysqli_num_rows($r) == 1){

    $row = mysqli_fetch_row($r);    
    return $row[0] ;

  } else {


    $i = $i + 1 ;
    if($i > 10) {
        return $today ;

    } else {

        stockToDate($base_date, $i) ;       
    }    
  }  
}
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/41192
 
301 次点击  
文章 [ 1 ]  |  最新文章 4 年前
suresh bambhaniya
Reply   •   1 楼
suresh bambhaniya    5 年前

每次函数调用自身时,它都需要能够将返回值传递到调用堆栈上。你错过 返回

function stockToDate($base_date, $i) {

  include "../lib/dbconn.php" ;     

  $today = date("Y-m-d") ;
  $base_date = date("Y-m-d", strtotime($base_date . "-1day")) ; 


  $q  = " SELECT txn_date "
      . "   FROM tworking_ymd   "  
      . "  WHERE txn_date = '$base_date' " ;
  $r = mysqli_query($dbc, $q) ;

  if(mysqli_num_rows($r) == 1){

    $row = mysqli_fetch_row($r);    
    return $row[0] ;

  } else {


    $i = $i + 1 ;
    if($i > 10) {
        return $today ;

    } else {

        return stockToDate($base_date, $i) ;       
    }    
  }  
}