2009-03-09 21 views
36

मैं PHP का उपयोग कर रहा हूं, लेकिन मैं अनुमान यह प्रश्न भाषा अज्ञेयवादी हो सकता है।निर्देशिका विभाजक निरंतर आवश्यक है?

PHP के साथ, स्थिरांक को PHP द्वारा परिभाषित किया जाता है, जिसे DIRECTORY_SEPARATOR कहा जाता है। मैंने इसे जूमला

define('DS', DIRECTORY_SEPARATOR); 

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

इस निरंतर अनावश्यक का उपयोग कर रहा है?

उत्तर

18

मैक ओएस क्लासिक उदाहरण के लिए ":" का उपयोग करता है। विवरण के लिए Wikipedia देखें। इसके अलावा इसे 'magic numbers' या इसी तरह की संरचनाओं से परहेज करने वाली अच्छी शैली माना जाता है।

+0

पथ में '/' के उपयोग Equating एक जादू संख्या के लिए कुछ समर्थन तर्क की आवश्यकता है। – Kzqai

5

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

+7

वास्तव में, मैं यकीन है कि विंडोज दोनों स्वीकार करते हैं और आवश्यक के रूप में अनुवाद करेगा हूँ (मैं यह कर सकते हैं सीडी एक cmd उदाहरण ठीक से/विंडोज के लिए)। – overslacked

+1

@ ओवरस्लेक्ड, आंशिक रूप से आप सही हैं। सीडी डी: /, तोड़ने के लिए इस्तेमाल किया, जबकि सीडी/foo काम किया foo। –

18

जहां तक ​​पीएचपी का सवाल है, तो आप इसे जब एक पथ का निर्माण की आवश्यकता न पड़े, लेकिन यह कुछ भी आप ओएस से प्राप्त करने के लिए महत्वपूर्ण है।

http://alanhogan.com/tips/php/directory-separator-not-necessary से:

पार मंच, पोर्टेबल PHP कोड लिखने के लिए प्रयास कर रहा है, मैं PHP ’ रों DIRECTORY_SEPARATOR लगातार इस्तेमाल किया पथ तार, उदा लिखने के लिए "..".DIRECTORY_SEPARATOR."foo", क्योंकि “ उचित ” विंडोज़ पर ऐसा करने का तरीका "..\foo" होगा जबकि बाकी सब कुछ (लिनक्स, यूनिक्स, मैक ओएस एक्स) यह "../foo" होगा।

ठीक है, क्योंकि php.net पर ईसाई ने बताया कि वेब डिज़ाइन फ़ोरम के लोगों ने पुष्टि की है कि ’ पूरी तरह से अनावश्यक है। जब तक आप फॉरवर्ड स्लैश का उपयोग करते हैं, “/”, आप ’ ठीक रहेगा। विंडोज नहीं करता है ’ टी यह बात नहीं, और यह ’ रों * nix ऑपरेटिंग सिस्टम के लिए सबसे अच्छा।

(ध्यान दें कि DIRECTORY_SEPARATOR अभी भी explode तरह बातें एक रास्ता आईएनजी कि प्रणाली आप दे दी है के लिए उपयोगी है। धन्यवाद इस ओर इशारा करते हुए के लिए Shadowfiend करने के लिए।)

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