2017-01-13 5 views
-1

このような変数を一度 "変更"するのは危険なことですか?私は他の機能のために$Aを再利用して混乱や紛争を起こさないことを知っていますが、このような単一の単純な機能の中にはありますか?このような単位の出力文字列のために新しい変数を定義するのと同じように見えますが、長いプログラムでは本当に足りるでしょう。PHPは変数を再定義/再利用するのは賢明ではありません

if (whatever conditions) { 
    $A = $X * $Y; 
    if (user selected ft as units) { 
     $A = $A/304.8.' ft'; 
    } 
    elseif (user selected in as units) { 
     $A = $A/25.4.' in'; 
    } 
    echo $A 
} 
+0

ユーザーが何かを選択したと仮定すると、それは私にはうまく見えますが、それは2つの選択肢の1つです。 – AbraCadaver

答えて

1

これには、一般的には新しい変数の定義を必要としない別の方法があります。これを変数に一度格納する(これはデフラッターコードでもあります)値に変更してください。

例:

function getA($X,$Y) { 
    if (user selected ft as units) { 
     return ($X * $Y)/304.8.' ft'; 
    } 
    elseif (user selected in as units) { 
     return ($X * $Y)/25.4.' in'; 
    }  
} 

if (whatever conditions) { 
    echo getA($X,$Y); 
} 

またはあなたの特定のケースでは2つのエコー、それぞれ1つの例の場合がありますそれは$Aの目的が何であるかに関して、それが不明確になるので、あなたがやっている

if (whatever conditions) { 
    $A = $X * $Y; 
    if (user selected ft as units) { 
     echo ($A/304.8).' ft'; 
    } 
    elseif (user selected in as units) { 
     echo ($A/25.4).' in'; 
    } 
} 

再定義$A方法が悪い習慣です。それは数学的操作の結果ですか、それともプレゼンテーション要素ですか?

再使用する必要がある場合は、少なくとも同じ目的で再使用する必要がある場合。

3

短い答え:

なし

長い答え:

これは文脈とどのように大きなあなたの関数本体があるに依存し、および/またはコードがどのように複雑であり、スニペットの周り。流れ符号化における

選択肢は次のようになります。

  • 他に使用して、および(各ブロックの場合に乗算を移動する)コードを複製、そしてもちろん、これは奇妙な他の
  • 良い使用ではないでしょうswitch(true)

あなたが書いたコードのスニペットのような-ish構築物は、私にはかなり大丈夫に見える、と私はトンを更新としてif文を検討します彼それを再利用するよりむしろ変数$Aそれです。私は個人的にそれを頻繁に使用するので、私の同僚もそうします。

この場合も、視認性は周囲のコードによって異なります。このスニペットが別のifの内部にある場合は、それはうまくいかないかもしれませんが、変数が更新されているわけではありませんが、スタックしすぎているためにifです。

関連する問題