2

if私は、私のステートメントのいくつかを単純化するセマンティックまたは言語構造を探しています。またはを含むifステートメントがあり、2つの値の間で「選択」する場合は、選択した変数をコードの後半で使用できるようにします。

これを擬似コードで記述します。

if ( x or y ) {
    function(z);
}

またはzの値は どこにありますか。そうでなければ私は書いていますxyif

if ( x ) {
    ...
    function(x);
} 

if ( y ) { 
    ...
    function(y);
}

この例では、重複はそれほど多くありませんが、私の実際の状況では、各ifブロック内で同一の重複となる約6行のコードがあります。だから私は次のようなものを書きます:

if ( x )  {
    z = x;
} 

if ( y ) {
   z = y;
}

if ( z ) {
    ...
    function(z);
}

しかし、それは非常に回りくどいように思えますが、その線のどこかで、ある教祖が1行を作成するための優れた構文を思いついたのではないかと思いますif。トリガー値を後続のブロックの変数にバインドできる言語の構造はどこにありますか?この構造は何と呼ばれますか?

私が働いている実際の状況はPHPであるため、PHPにはこの機能がない可能性があることに気付きました。

4

3 に答える 3

1

この正確な状況のために。?次の演算子を使用できます。

z = x ? x : y;

zは(xがfalseでない場合)xであり、それ以外の場合はyです。

于 2010-09-14T17:25:29.300 に答える
1

Python(Rubyも)では、式はtrueであるかどうかをx or y評価し、そうでない場合はを評価します。ステートメントは、、またはとして記述できます。xyf(x or y)z = x or y

于 2010-09-14T17:47:02.600 に答える
0

実は

if ( $z = ( $x ? $x : $y ) ) {
    function($z);
}

PHPで宣伝されているとおりに機能します。ありがとう、slebetman!

于 2010-09-14T18:30:20.107 に答える