3

私はphpでエラーメッセージを表示するとき、たいていこうしていますが、

if($query){
    // Success code
}else{
    // Error message
    $error_msg = "An error occurred.";
    return false;
}

$error_msgフロントエンドのhtmlページで変数をエコーし​​ます。return false変数の後に実際に何かをするのか、それともそこに置くのは無意味なのか疑問に思っていますか?

コードを最適化しようとしていますが、確認したかっただけです! よろしくお願いします!

4

2 に答える 2

3

はい、実行を停止し、値「false」を返すように関数に指示します。だからそれは何かをします。何か役に立つかどうかは、プログラミングに依存します。

エコーの後に実行可能な行がなく、関数が値を返す必要がない場合、実際には何も役に立ちません。

ただし、「これは停止/失敗ポイントである」ことを読者に明確にします。そして、ある日、それが機能したか失敗したかを実際にトラップしたいかもしれません。また、考えずに関数を拡張し、戻り値を後付けする必要がある場合もあります。これもそのままにしておくと、簡単になります。

逆に、ガベージ コレクションを支援するために、すべての関数に対して 1 つのエントリ ポイントと 1 つの終了ポイントしか持たない C/アセンブラ時代の古いプログラミング スタイルもあります。PHP の要件ではありませんが、そのスタイルは PHP を素晴らしくすっきりとさせます。この場合、戻り値を設定し (必要な場合)、最後に戻ります。

だから、あなたのスタイルに合ったものを選んでください-しかし、先を考えてください. すべてを手付かずのミニマルにする (つまり、厳密には必要ないので行を削除する) ことは、常に最善の方法であるとは限りません。

于 2012-09-17T04:28:43.300 に答える
1

return false のポイントは、潜在的なエラーメッセージなどに入る必要なく、関数が機能しているかどうかを簡単にテストできるようにすることです。

失敗した場合に false を返す関数は、次の方法で使用できます。

if(someFunction($var))
{
    do stuff for function working...
}
else
{
    // function failed. Do other stuff.
}

関数が失敗したときに false を返すことも直感的です。次のようにさらに使用できます。

$foo=someFunction($var);
if($foo)
{
    again, function has worked.
}//... etc

The function has failedを返す同じ関数は、直感的な方法では使用できませんでした。

于 2012-09-17T04:27:56.907 に答える