7

これは、私が多くの熱くて蒸し暑いコーディング セッションで遭遇した、長期にわたる問題でした。

ある人はこのようにコーディングし、別の人はそのようにコーディングします。それで、多くのプッシュとプルの後、私は興味があります.PHPの「IF ELSE」ステートメントを表現する正しい方法はありますか?

個人的に私は以下を使用します:

if ($variable == 'setvalue')
{
    $variable = executefunctiononvariable($variable);
} else {
    $variable = executedifferentfunctiononvariable($variable);
}

多くの議論の後、次のような他のオプションが提示されましたが、

if ($variable == 'setvalue')
{
    $variable = executefunctiononvariable($variable);
}
else
{
    $variable = executedifferentfunctiononvariable($variable);
}

また

if ($variable == 'setvalue')
    $variable = executefunctiononvariable($variable);
else
    $variable = executedifferentfunctiononvariable($variable);

また

if ($variable == 'setvalue') {
    $variable = executefunctiononvariable($variable);
} else {
    $variable = executedifferentfunctiononvariable($variable);
}
4

12 に答える 12

22

私は個人的に if/else を最後のものと同じようにフォーマットします:

if ($variable == 'setvalue') {
    $variable = executefunctiononvariable($variable);
} else {
    $variable = executedifferentfunctiononvariable($variable);
}

私の考えでは、あなたのバージョンは一種の 1 と 3 の混合物です。

私はまた、それらすべてを行うコーダーと協力してきましたが、標準的なものは聞いたことがありません.

PHP Web サイトは最後のものを使用します: http://ca2.php.net/manual/en/control-structures.elseif.php

if ステートメントが常に非常に短い場合にも、2 番目の例を使用します。長くなる可能性がある場合 (それぞれ 1 行以上)、#1 を行います。後で {} を追加するのが難しいため、可能な限り #2 を避けるようにしています。

于 2009-02-15T04:34:42.943 に答える
8

私は最後のものを使用します:

if ($variable == 'setvalue') {
    $variable = executefunctiononvariable($variable);
} else {
    $variable = executedifferentfunctiononvariable($variable);
}    

そうは言っても、どちらを使用するかは重要ではありません。一貫性があることを確認してください。

于 2009-02-15T04:34:52.647 に答える
7

正しい方法は、プロジェクトのコーディング標準に従うことです。持っていない場合は、PHP-FIG、Zend、Symfony などから 1 つを採用してください。

このフォームは非常に人気があるようです:

if (condition) {
    statements
} else {
    statements
}

変数の代入については、ステートメントが読みやすく 1 行に収まる場合にのみ3 進数を使用します。

$variable = !empty($foo) ? $foo : 'default';

更新:これは賢明な方法ではないと考えているため、複数行の三項ステートメントに関するビットを削除しました。

于 2009-02-15T04:55:47.293 に答える
4

忘れないで

if (expression):
   // code goes here
elseif (another expression):
   // code goes here
else:
   // code goes here
endif;

個人的にタッグスープを作るときはこの構造が好きです。

于 2009-05-14T20:10:30.083 に答える
4

私は個人的に好きです:

if(something){
    doSomething();
}
elseif(somethingElse){
    doSomethingElse();
}
else{
    doAnotherThing();
}
于 2009-02-15T10:10:50.830 に答える
3

最も重要なことは、プロジェクトに取り組んでいるプログラマーがほぼ同じコーディング ガイドラインに従っていることです。ですから、会議を開き、どちらかを選んで、それに固執してください。

于 2009-02-15T04:34:07.593 に答える
3

私はいつも (2) を行っていましたが、Sun のコーディング規約が (4) を使用しているため、Java プログラミングからそれを打ち負かされました。これで、(4) にはかなり慣れました。私は最近C#を少しやっていて、デフォルトで(2)を使用しているようです(ため息、また行きます)。

習慣から PHP では (4) を実行しますが、(2) も問題ありません。(1)は全然好きじゃない。

そして(3)は危険です。個人的には、たとえ 1 つのステートメントであっても、言語の構文では中かっこが必要だと思います。トラブルに巻き込まれるのを防ぎます。それがPerlがメモリから行う方法だと思います。

私が嫌いなのは、人々がこれをするときです:

if (something) {
  // do something
}
else if (something else) {
}

それは私をバタバタさせます。したがって、(2)と(4)のみが受け入れられると思います。それが一貫して行われている限り、できれば言語の慣習の範囲内である限り、私はそれがどれであるかは気にしません。

于 2009-02-15T05:15:19.960 に答える
2

正しい方法も間違った方法もありません。それは意見です。個人的にはラスト( 1TBS??? )が一番好きです。私はブレースなしのものを使用したことはありません。一般的にスタイルが悪いと思います。

この質問に本当に答えられるのは、コードに取り組む他の人だけです。誰もがコーディング標準に同意することが重要です。どの標準を選択するかは、誰もがそれを使用しているという事実ほど重要ではありません。

于 2009-02-15T04:37:39.303 に答える
2

PEAR コーディング標準は PHP コーディング標準です。Zend、Doctrine、Symfony、Horde などの他のプロジェクトで見られるので、慣れることをお勧めします。

http://framework.zend.com/manual/en/coding-standard.coding-style.html#coding-standard.coding-style.control-statements.if-else-elseif

于 2009-02-15T05:15:01.130 に答える
1

要するに、これは正しい方法ではありません。それが機能する限り、あなたが最高だと思うものは何でも使用できます。1 つ選んでそれに固執する必要があります。これにより、コードが認識しやすくなります。

唯一のことは、「{」文字を含めない場合、1 つの式または関数に制限されることです。

また、変数を定義するだけの場合は、次のコードを使用できます。

$variable = (CONDITIONAL STATEMENT) ? "It was true" : "It was false"; 
于 2009-02-15T04:32:40.890 に答える
0

本当に私には...それは問題ではありません。どちらでも問題なく読めると思います。中括弧が新しい行にあるかどうかは本当に重要ですか? 閉じ括弧の後にスペースがあるかどうかは本当に重要ですか?

少なくともコードを読みやすくする試みが行われているような方法でコードが作成されている限り、私はまったく気にしません。

正しい方法はありますか?もしそうなら、なぜ私たちはそれを別の方法で行うオプションを持っているのでしょうか?

于 2009-08-05T21:38:55.450 に答える