私は、この省略表現が、プロの PHP 開発者の間で受け入れられているコーディング方法であるかどうか疑問に思っていました。
foo() && bar();
それ以外の
if( foo() ) {
bar();
}
IMO では、1 行のコードの方がはるかにきれいですが、どこでも使用されているのを見たことがありません。
私は、この省略表現が、プロの PHP 開発者の間で受け入れられているコーディング方法であるかどうか疑問に思っていました。
foo() && bar();
それ以外の
if( foo() ) {
bar();
}
IMO では、1 行のコードの方がはるかにきれいですが、どこでも使用されているのを見たことがありません。
これは、多くの言語の開発者の間で一般的な方法です。技術的には何も問題はありませんが、StackOverflow に表示される回数から判断すると、「意味のある場合にのみ使用する」と言っておきましょう。ほとんどの人はそれを期待していません。
つまり、これは完全に有効です。
foo()?bar()?bat():zonk():baz();
そのまま
foo() && bar() && baz();
覚えとけ:
function foo(){return true;}
function bar(){echo "bar";}
function baz(){echo "baz"; return 2;}
echo foo()||foo()?baz():baz(); // baz2
foo() && bar();
if
はブール式なので、ブール コンテキスト ( 、 などの条件) 内に配置しないと正しくありませんwhile
。
コードは、解決される問題の「ストーリー」を伝える必要があります。このショートカットを使用しても、ストーリーは伝えられません。それは醜いハックであり、エレガントではありません。
それを「きちんとした」と考えるなら、コードがコードではなくアイデアを意味するという点にまだ到達していません。
個人的には、私はそれで何も悪いとは思いません。これはかなり広く普及しているため、ほとんどの PHP プログラマーは拡張バージョンと同じように理解し、完全に受け入れられるようになります。
最も重要な部分は、読みやすいコードを書くことです。foo()
たとえばとのような関数名を使用しbar()
てもまったく役に立たないため、比較したい 2 つのうちどちらが優れているかはわかりません。
それに加えて、if の例にはいくつかの重大な欠陥もあります。
if
は言語構造ですが、関数のように使用します。別の提案は次のとおりです。
if (foo()) {
しかし、この 2 つを比較したかったのです。コードは常にそのコンテキストにあります。読み取り可能なコードは、そのコンテキストを使用します。両方の提案が有効である可能性があります。重要な点は、コードからすでに意味を読み取ることができるということです。
conditionMet() && gotForIt();
if (conditionMet()) goForIt();
自分で決めてください。ある行から別の行へと混在させないでください。コード全体で 1 つのスタイルを維持してください。