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!

OK、PHP を使用して、Web サイトのサーバー側のプログラムを作成しようとしています。選択した IDE として Netbeans を使用して、単一の行を連想配列に格納する関数を作成しようとしたときにエラーが発生しました。変数 $SelectedRow を返そうとすると、問題が発生します。「到達不能ステートメント」警告が発生します。これにより、プログラムは完全に横ばいになります。関数に含まれていなくても、このコードを機能させることができます。しかし、それがプログラムの書き方を学びながら問題を解決するための方法だとは本当に思いません。

補足: これは私が SO に投稿した最初の質問なので、建設的な批判やヒントをいただければ幸いです。回答やその他の種類のものに役立つ仕様を投稿できてうれしいです。これがいわゆる「レプリカ」の質問であるとは思いません。これまでのところ、PHP で同じ問題に対処する別の SO の質問を見つけることができなかったからです。この CS 全体を始めたばかりなので、一般的に、誰かが私のコードについて何か提案があれば、聞いてうれしく思います。

4

2 に答える 2

3

できるのはreturn1 回だけです。最初の以降はすべてreturn到達不能です。

その関数から何を返したいのかは完全にはわかりませんが、1 つの値しか返すことができません。

于 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 に答える