2010-11-21 10 views

उत्तर

9

हमेशा उत्तरार्द्ध - यह echo, print और अन्य भाषा संरचनाओं पर भी लागू होता है। कभी भी भाषा संरचनाओं के बाद अतिरिक्त कोष्ठक जोड़ें नहीं!

कारण सरल है: ब्रांड्स का उपयोग करके आपको विश्वास होता है कि require एक कार्य है - जो यह नहीं है! उदाहरण के लिए:

if (require('file.php') == false) { 
    // do stuff 
} 

आप - और शायद भी वरिष्ठ PHP डेवलपर के सबसे - कहूँगा कि यह तुलना require के रिटर्न मान। लेकिन यह नहीं है! पीएचपी की व्याख्या इस रूप में:

if (require (('file.php') == false)) { 
    // do stuff 
} 

जो है:

if (require '') { 
    // do stuff 
} 

आप भाषा के साथ कोष्ठक का उपयोग करते हैं निर्माण करती है आप के रूप में अच्छी तरह से लिख सकते हैं:

require(((((((((((((((((((('file.php')))))))))))))))))))) 

या क्या आपने कभी लिखते थे:

array(('hi')); 

यह उतना ही बकवास है जितना।

+0

"भाषा संरचनाओं के साथ कभी भी ब्रांड्स का उपयोग न करें"। तो आप कभी भी पैरामीटर के साथ 'सरणी' या 'निकास' का उपयोग नहीं करते? यह वास्तव में एक ऑपरेटर प्राथमिकता मुद्दा है, और उस पर काफी योगदान हुआ है। प्रश्न में कोई सुझाव नहीं है। एक गैर-मौजूदा वापसी मूल्य की जांच करने के लिए। और यदि आप * लिखते हैं * लिखते हैं ('file.php') == false', आपको तत्काल घातक त्रुटि मिलती है। तो सूक्ष्म बग की कोई संभावना नहीं है। –

+3

@ मेट्टी: 'सरणी' के साथ कंस्ट्रैसिस निर्माण का हिस्सा हैं। 'आवश्यकता' के साथ वे नहीं हैं। आप उन्हें छोड़ नहीं सकते हैं। – NikiC

+0

PHP बस टूट गया है। – Gumbo

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