2011-06-25 8 views
13

私は私の名前を入れていない非常に古い場所で/と一緒に働いています。線に沿って既存のコードで再occuringパターンにあるようです:PHP関数のreturn文の後のコード

function foo() { 
    $a = 'a'; 
    $b = 'b'; 

    return; 

    $c = 'c'; 
    $d = 'd'; 
} 

であるように私は私が書いていない関数からの既存のコードを削除することは非常にrelunctantだし、すべてが動作しています。しかし、なぜ私は知りたいのですか?

私が今までに学んだこと(goto行呼び出しを除いて)は、return文の後のコードは役に立たないと私に伝えます。それは...ですか?以前のプログラマーはなぜこれをしましたか?

+2

はいです。たぶん彼は何かを試していたかもしれない –

+0

以前の開発者が何か困惑して馬鹿げたことをした理由を知る必要があることを感謝します。あまりにもしばしば、私たちは、何週間も後に噛み付くまで、私たちが何をしたかを忘れてしまっただけで、肩をすくめて動いています。 –

+0

乾杯 - わかりましたか?そのプロジェクト中に私が直面していた時間は狂っていた – Chris

答えて

17

return文の後のコードは決して実行されません。おそらく元の開発者は変数の他の値を素早くテストしたいと思っていました。バージョン管理を使用して、既存のコードを削除して、それを再度回復することができます。

+0

確認のおかげで - テストはその背後にある理由の可能性が高いです。バージョン管理は良い点です。見てみる必要があるかもしれませんが、手頃な価格のプライベートサービスを利用できません。 – Chris

+0

@chris:手頃なプライベートサービス? dvcs(例:[git](http://git-scm.com)または[mer​​curial(http://mercurial.selenic.com/)])を使用してください。どちらもオープンソースソフトウェアです。また、サーバを必要とせずにローカルにバージョン履歴を持たせることもできます。 – knittl

+0

github、googlecodeなどを経由する必要があると私は考えていました。 – Chris

3

return文の下のコードは役に立たず、実行されません。

1

私が最初に考えたのは、もともとはコードを実行しなくても、何らかの理由で他のコードを削除したくなかった。

これは、作成者が別の方法で実装するコードを書き換えた場合の例です。彼らはreturn文の上に新しい実装を置いていましたが、コードの下にコードを残して、どのように使用されたかの「参照」としてそこにあったようにしました。そうすれば、新しいコードで何かが動作していないことが分かっても、簡単に見ることができる古いコードがあります。

確かに、バージョン管理と単体テストではこれはあまり役に立ちませんが、とにかくやり方は珍しいことではありません。

関連する問題