2012-12-19 13 views
6

मैंने देखा कि PHP के आंतरिक कार्य पूर्व-परिभाषित या सीमित मानों के लिए स्ट्रिंग का उपयोग नहीं करते हैं, केवल स्थिरांक।PHP के अंतर्निहित फ़ंक्शंस पैरामीटर के रूप में केवल तारों के बजाय स्थिरांक का उपयोग क्यों करते हैं?

For example:

pad_type:

वैकल्पिक तर्क pad_type STR_PAD_RIGHT, STR_PAD_LEFT, या STR_PAD_BOTH हो सकता है। यदि pad_type निर्दिष्ट नहीं है तो इसे STR_PAD_RIGHT माना जाता है।

स्ट्रिंग का उपयोग यहां पैरामीटर के रूप में नहीं करने का कारण क्या है?

str_pad($test, 10, 0, 'left') से str_pad($test, 10, 0, STR_PAD_LEFT)

बहुत आसान (यह एक मेटा सवाल का अधिक है। मुझे आशा है कि इसे यहाँ पूछने के लिए ठीक है।)

+0

जब आप इंटेलिजेंस के साथ आईडीई का उपयोग कर रहे हैं तो बहुत बड़ा फायदा होता है। – Ibu

उत्तर

5

यह जब एक स्ट्रिंग टाइपिंग गलतियाँ करने के लिए आसान है लगता है। एक अपरिभाषित स्थिरांक का उपयोग एक चेतावनी फेंक देगा। यह सिर्फ एक PHP चीज नहीं है। नियमित एपीआई फ़ंक्शन (यानी ओएस का) आमतौर पर संख्यात्मक स्थिरांक का उपयोग इस तरह के पैरामीटर के लिए करते हैं।

+0

भी जोड़ें: फ़ंक्शन की रखरखाव के लिए। फ़ंक्शन परिवर्तनों की गड़बड़ी कहें, इसलिए पैरामीटर मान (प्रकार) और प्रकारों की भी संभावना अधिक होगी। एक मनमानी स्ट्रिंग के बजाय स्थिर के साथ परिभाषित करना बहुत अधिक समझ में आता है। – FredTheWebGuy

1

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

आप निरंतर पसंद नहीं है तो आप सिर्फ पूर्णांक मान का उपयोग कर सकते हैं

str_pad($test, 10, 0, 0) == str_pad($test, 10, 0, STR_PAD_LEFT) 
1

सूचना है कि मानकों में $pad_type के प्रकार वास्तव में int है। उत्तीर्ण करना तारों को पार करने (फिर तुलना करने) की तुलना में बहुत तेज़ है। तो फ़ंक्शन में एक संख्या को पारित करने के बजाय यह बताने के लिए कि आप क्या करना चाहते हैं, आप अपने कोड को स्पष्ट बनाते हुए, निरंतर निरंतर पास करते हैं। और यदि PHP डेवलपर्स कभी भी इनट्स की बजाय स्ट्रिंग पास करने के लिए इसे बदलना चाहते हैं, तो जब तक आप स्थिरांक का उपयोग करते हैं, तब तक वे आपके किसी भी कोड को तोड़ने के बिना कर सकते हैं।

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

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