【问题标题】:php function return variable not workingphp函数返回变量不起作用
【发布时间】:2018-05-28 15:28:11
【问题描述】:

我创建了一个函数(递归)。 如果它有父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 

【问题讨论】:

  • 我认为应该是return abc($dbcon,$get_rel['member_id']);。您执行该函数,但从未从递归调用中获得结果
  • 你应该修复 SQL 注入。
  • @Kaddath 它再次调用我的函数(无限次)。
  • @abhichavda 你得到了什么结果?你能在if($get_numrows>0){之前加上:print $get_numrows."\n"吗?

标签: php function


【解决方案1】:

这是工作代码。问题是我在再次调用函数时没有使用 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"

【讨论】:

    猜你喜欢
    • 2017-08-08
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多