首页 > 解决方案 > php函数返回变量不起作用

问题描述

我创建了一个函数(递归)。如果它有父ID,它将再次调用,否则它将返回最后一个ID。问题是我无法返回函数参数中传递的最后一个 Id。如果我使用 var_dump() 或 echo 但无法在 return() 中返回,则显示完成。

这是示例代码:

function abc($dbcon,$id){
    $get_quy = "select * from member_mst where member_status=0 and pid=".$id;
    $get_rs = $dbcon->query($get_quy);

    $get_numrows = mysqli_num_rows($get_rs);
    $get_rel = mysqli_fetch_assoc($get_rs);

    if($get_numrows>0){
        abc($dbcon,$get_rel['member_id']);
    }else{
        //var_dump($id);//This will return => "String '3'" 
        return $id;
    }
}
var_dump(abc($dbcon,1));//Returning Null 

标签: phpfunction

解决方案


这是工作代码。问题是我在再次调用函数时没有使用 return() 。

function abc($dbcon,$id){
    $get_quy = "select * from member_mst where member_status=0 and pid=".$id;
    $get_rs = $dbcon->query($get_quy);

    $get_numrows = mysqli_num_rows($get_rs);
    $get_rel = mysqli_fetch_assoc($get_rs);

    if($get_numrows>0){
        return abc($dbcon,$get_rel['member_id']); // Updated Code Here
    }else{
        return $id;
    }
}
var_dump(abc($dbcon,1));//Returning "3"

推荐阅读