2012-10-07 15 views
8
में फ़ंक्शन को कॉल करते समय

अक्सर, मैंने देखा है कार्यों की तरहअस्थायी चर का उपयोग करना पीएचपी

$content = getContent($isAdmin = false) 

बुलाया जा रहा है जबकि समारोह घोषणा

function getContent($isAdmin = true){ 
....} 

की तरह है क्यों किसी को भी एक चर बनाने का एक अधिभार जोड़ना होगा और फ़ंक्शन कॉल में केवल एक बार इसका उपयोग कर !!

मैं समझता हूं कि यह फ़ंक्शन कॉल को स्पष्ट करता है, लेकिन क्या हम इसके बजाय PHPDoc ब्लॉक का उपयोग नहीं करना चाहिए?

+1

है। वैसे भी आपके पास मेमोरी परेशानी है, भले ही कोई चर नहीं होगा। PHP ऐसी चीजों के साथ बहुत अच्छा है। चर से डरो मत, भले ही आप केवल एक बार उनका उपयोग करें, उनका उपयोग करें। वे आपका कोड सुधारेंगे। – hakre

उत्तर

7

मुझे यह महसूस हो रहा है कि आप इतनी "अपशिष्ट" से गहराई से चौंक गए हैं।

चर रखें, चर का उपयोग करके कुछ भी बुरा नहीं है, आपको अक्सर उनका उपयोग करना चाहिए। वे आम तौर पर आपके कोड को अधिक वर्णनात्मक और तेज़ बनाते हैं।

यदि आप उस रेखा को देखते हैं तो अधिक वर्णनात्मक भाग यहां है, तो आप देखते हैं कि कौन सा पैरामीटर है क्योंकि अब इसका नाम है।

लेकिन क्या हमें इसके बजाय PHPDoc ब्लॉक का उपयोग नहीं करना चाहिए?

अच्छा, वास्तव में यह टिप्पणियों से संबंधित नहीं है (डॉकब्लॉक) टिप्पणियां।

function getContent($isAdmin = true) { 

यह सिर्फ यह नाम से पैरामीटर की परिभाषा: यहां तक ​​कि समारोह परिभाषा, वहाँ कि पैरामीटर के लिए कोई टिप्पणी नहीं की है। इसके अलावा docblock पैरामीटर केवल होगा जब आप समारोह को परिभाषित:

... 
* @param $isAdmin bool (optional) true or false, true by default 
... 
function getContent($isAdmin = true) { 

हालांकि कि जहां समारोह कहा जाता है नहीं है:

$content = getContent($isAdmin = false) 

तो अगर आप (उस लाइन पर और किसी भी हॉटकी दबाने से पहले देखो या माउस बटन), आप पहले ही इसे पढ़ चुके हैं। कुछ भी जरूरी नहीं, केवल कोड। नोटपैड या एक गैर-कॉन्फ़िगर किए गए जीएडिट में भी काम करता है।

$nonAdmin = false; 
$content = getContent($nonAdmin); 

और btw, अगर आपके कोड टिप्पणियां की जरूरत है, यह सामान्य रूप से एक संकेत है कि यह बहुत जटिल है। इसके अलावा पैरामीटर का नाम इसके डॉकब्लॉक से कहीं अधिक महत्वपूर्ण है। एक अच्छा नाम आम तौर पर इसका मतलब है कि इसके लिए आपको डॉकब्लॉक टैग करने की आवश्यकता नहीं है (इसका मतलब है: बनाए रखने के लिए कम कोड), क्योंकि नाम स्वयं के लिए बोलता है।

इसके अलावा आधुनिक आईडीई स्थिर विश्लेषण द्वारा पैरामीटर के प्रकार को जानते हैं और इसलिए आपको डॉकब्लॉक टैग की आवश्यकता नहीं है। तो नहीं, आपको हमेशा PHPDocblocks का उपयोग नहीं करना चाहिए।

+0

+1 मजबूत तर्क मुझे आश्चर्य है कि कीवर्ड तर्कों को PHP – Baba

+0

+1 में समर्थित किया जाएगा "तो नहीं, आपको हमेशा PHPDocblocks का उपयोग नहीं करना चाहिए।", इससे मुझे आश्चर्य हुआ क्योंकि अधिकांश आधुनिक आईडीई के साथ फ़ंक्शन पैरामीटर नाम दिखाया गया है इसका डेटा प्रकार (यदि एक डिफ़ॉल्ट मान प्रदान किया जाता है) – Akash

3

तरह लेखन:

$content = getContent($isAdmin = false) 

$isAdmin, यहां तक ​​कि बाहर समारोह दायरे में परिभाषित किया जा यानी अगर आपने एक var_dump($isAdmin) जारी की सुविधा देता है, तो आप bool(false) मिलता है।

इस तरह आप एक वर काम को बचाने: जिस तरह से चर काम बहुत सस्ता है

$isAdmin = false; 
$content = getContent($isAdmin); 
... 
someStuff($isAdmin); 
संबंधित मुद्दे