2011-06-25 17 views
13

में रिटर्न स्टेटमेंट के बाद कोड मैं एक बेहद पुरातन साइट पर/साथ काम कर रहा हूं जिसे मैं अपना नाम नहीं डालूंगा। वहाँ, मौजूदा कोड में एक फिर से उत्पन्न पैटर्न लगता है की तर्ज पर:एक PHP फ़ंक्शन

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

    return; 

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

मैं एक समारोह है कि मैं नहीं लिखा था से मौजूदा कोड को हटाने के लिए बहुत relunctant हूँ, और है के रूप में सब कुछ काम कर रहा है । लेकिन मैं जानना चाहूंगा क्यों?

मैंने जो कुछ भी सीखा है (एक गोटो लाइन कॉल के अपवाद के साथ) मुझे बताता है कि रिटर्न स्टेटमेंट के बाद कोड बेकार है। क्या यह? पिछला प्रोग्रामर ऐसा क्यों करेगा?

+2

हां यह है। शायद वह कुछ परीक्षण कर रहा था। –

+0

मैं यह जानने की आवश्यकता की सराहना करता हूं कि पिछले डेवलपर ने कुछ परेशान और बेवकूफ क्यों किया था। अक्सर हम खुद को केवल शर्मनाक और आगे बढ़ते पाते हैं ... जब तक यह हमें हफ्तों बाद काटता है, एक बार जब हम भूल गए हैं कि हमने क्या किया है। –

+0

चीयर्स - मुझे सही पता है? उस परियोजना के दौरान मैंने कितनी बार चेहरे की थी, पागल – Chris

उत्तर

17

return कथन के बाद कोड कभी निष्पादित नहीं किया जाएगा। संभवतः मूल डेवलपर चर के लिए अन्य मूल्यों का त्वरित परीक्षण करना चाहता था और फ़ंक्शन में अपने पुराने प्रयोगों को छोड़ देता था। संस्करण नियंत्रण का उपयोग करें और आप इसे मौजूदा कोड को हटा सकते हैं और इसे फिर से प्राप्त करने के मामले में इसे पुनर्प्राप्त कर सकते हैं

+0

पुष्टि के लिए धन्यवाद - परीक्षण इसके पीछे तर्क की संभावना थी। वर्जन कंट्रोल एक अच्छा बिंदु है, और शायद मुझे कुछ देखना शुरू करने की ज़रूरत है, बस एक किफायती निजी सेवा में नहीं आया है – Chris

+0

@ क्रिस: सस्ती निजी सेवा? एक डीवीडी (उदाहरण के लिए [git] (http://git-scm.com) या [mercurial] (http://mercurial.selenic.com/)) का उपयोग करें, दोनों ओपन सोर्स सॉफ्टवेयर हैं। वे आपको सर्वर – knittl

+0

की आवश्यकता के बिना स्थानीय रूप से संस्करण इतिहास रखने की अनुमति भी देते हैं, मैं सोच रहा था कि आपको github, googlecode या इसी तरह के – Chris

3

रिटर्न स्टेटमेंट के नीचे कोड बेकार है, इसे निष्पादित नहीं किया जाएगा।

1

मेरा पहला विचार यह होगा कि जिस व्यक्ति ने कोड लिखा था वह मूल रूप से वापसी को जोड़ता था क्योंकि इसके बाद कोड को चलाने की आवश्यकता नहीं थी, लेकिन किसी कारण से दूसरे कोड को हटाना नहीं चाहता था।

यह एक उदाहरण है जहां यह मामला हो सकता है एक स्थिति में जहां लेखक इसे अलग तरीके से लागू करने के लिए कोड को फिर से लिखता है। उन्होंने रिटर्न स्टेटमेंट के ऊपर नया कार्यान्वयन किया, लेकिन नीचे दिए गए कोड को छोड़ दिया ताकि यह "संदर्भ" के रूप में किया जा सके कि यह कैसे किया जाता था। इस तरह, अगर उन्हें पता चलता है कि नए कोड में कुछ काम नहीं कर रहा है, तो उनके पास पुराना कोड आसानी से देखने के लिए है।

मान्य है, संस्करण नियंत्रण और इकाई परीक्षण इसे बहुत कम उपयोगी बनाते हैं, लेकिन यह वैसे भी करने के लिए एक असामान्य बात नहीं है।

संबंधित मुद्दे