3
require_once 'C:/wamp/www/FirstWebsite/CommonFunctions.php';

function SelectRowByIncrementFunc(){
    $dbhose = DB_Connect();
    $SelectRowByIncrementQuery = "SELECT * FROM trialtable2 ORDER BY ID ASC LIMIT 1";
    $result = mysqli_query($dbhose, $SelectRowByIncrementQuery);
    $SelectedRow = mysqli_fetch_assoc($result);
    return $SelectRowByIncrementQuery;
    return $SelectedRow; //HERE is the error <-------------------------------
    return $result; 
}

$row = $SelectedRow;
echo $row;



if ($row['Id'] === max(mysqli_fetch_assoc($Id))){
    $row['Id']=$row['Id'] === min(mysqli_fetch_assoc($Id));#TODO check === operator
}
else if($row['Id']=== min(mysqli_fetch_assoc($Id))){
    $row['Id']=max(mysqli_fetch_assoc($Id));#TODO check === operator //This logic is important. DONT use = 1!

好的,我正在尝试使用 PHP 为我的网站的服务器端编写一个程序。使用 Netbeans 作为我选择的 IDE,我在尝试编写将单行存储在关联数组中的函数时遇到了错误。当我尝试返回变量 $SelectedRow 时出现问题。它会导致“无法访问状态”警告。这导致程序在其表面上一落千丈。我可以让这段代码在不包含在函数中的情况下工作。但是,我真的不觉得这是在我学习编写程序时解决问题的方法。

旁注:这是我在 SO 上发布的第一个问题,因此非常感谢建设性的批评和提示。我很高兴发布任何有助于答案或任何其他类型的规范。我不相信这是一个所谓的“副本”问题,因为到目前为止我还没有找到另一个解决 PHP 中相同问题的 SO 问题。如果有人对我的代码有任何建议,一般来说,我会很高兴听到,因为我才刚刚开始整个 CS 事情。

4

2 回答 2

3

你只能return一次。第一个之后的一切return都是不可及的。

我并不完全清楚你从那个函数返回什么,但你只能返回一个值。

于 2015-11-30T03:56:07.437 回答
2

return命令取消了该功能的其余部分,因为一旦您使用它,它就达到了它的目的。

这样做的关键是将所有信息放入一个数组并在函数末尾返回,这样您就可以访问所有信息。

因此,尝试将您的代码更改为:

    require_once 'C:/wamp/www/FirstWebsite/CommonFunctions.php';

function SelectRowByIncrementFunc(){
    $dbhose = DB_Connect();
    $SelectRowByIncrementQuery = "SELECT * FROM trialtable2 ORDER BY ID ASC LIMIT 1";
    $result = mysqli_query($dbhose, $SelectRowByIncrementQuery);
    $SelectedRow = mysqli_fetch_assoc($result);
    $returnArray = array();
    $returnArray["SelectRowByIncrementQuery"] = $SelectRowByIncrementQuery;
    $returnArray["SelectedRow"] = $SelectedRow;
    $returnArray["result"] = $result;
    return $returnArray;
}

然后您可以像这样访问信息:

$selectedArray = SelectRowByIncrementFunc();

$row = $selectedArray["SelectedRow"]

等等……

于 2015-11-30T03:58:08.453 回答