सिंगल कोट्स और डबल कोट्स को PHP में थोड़ा अलग किया जाता है। मतभेदों को देखने के लिए पढ़ें कि उनका मूल्यांकन कैसे किया जाता है।
एकल कोट
सिंगल कोट्स चीजों को अधिक शाब्दिक अर्थ में पार्स करते हैं। उदाहरण के लिए, निम्नलिखित लें:
$ परीक्षण = "बूम"; echo '$ test'
परिवर्तनीय नाम, जब एकल उद्धरण के भीतर रखा जाता है उसे अपने वास्तविक मूल्य पर पार्स नहीं किया जाता है। यहां एक साधारण PHP कार्यक्रम के रूप में इसे चलाने से वास्तव में मुद्रित किया गया है:
$ परीक्षण
केवल 2 परिदृश्य हैं जिन्हें मैं सोच सकता हूं कि वास्तव में एक उद्धृत स्ट्रिंग के भीतर जानकारी कहां पार्स हो जाती है। सबसे पहले, एक उद्धृत चरित्र प्रदर्शित करने के लिए, इसे बैकस्लैश से पहले होना चाहिए। अन्यथा इसे आपकी स्ट्रिंग के अंत के रूप में व्याख्या किया जाएगा। दूसरा, बैकस्लैश प्रदर्शित करने के लिए, इसे पहले बैकस्लैक से पहले किया जाना चाहिए। उदाहरण:
गूंज 'एकल उद्धरण: \' '; गूंज 'बैकस्लैश: \\';
डबल उद्धरण
डबल उद्धरण आपके लिए चीजों को पार्स करते हैं। डबल कोट्स के बीच दौड़ते समय:
$ परीक्षण = "बूम"; गूंज "$ परीक्षण"
यह वास्तविक परिवर्तनीय मान आउटपुट करता है:
Booom
अब, कभी-कभी आप एक ऐसे परिदृश्य में भाग लेंगे जहां आप जिस चर नाम को आउटपुट करने का प्रयास कर रहे हैं उसे आसपास के पात्रों के कारण सही ढंग से पार्स नहीं किया गया है।
$ परीक्षण = "बूम"; echo "$ परीक्षण";
आपको क्या लगता है कि यहां आउटपुट हो जाता है? जवाब कुछ भी नहीं है। PHP $ टेस्ट नामक चर के लिए दिखता है, और चूंकि यह अस्तित्व में नहीं है, कुछ भी आउटपुट नहीं है। 'Ed' के बाद मान को आउटपुट करने का उचित तरीका होगा:
$ परीक्षण = "बूम"; echo "{$ test} ed";
घुंघराले ब्रैकेट के भीतर इसे लपेटकर, यह PHP को यह बताता है कि वेरिएबल कहां शुरू होता है और बंद हो जाता है, जिससे वे चर का सही मूल्यांकन कर सकते हैं।
गति अंतर
मैंने कुछ अंतर परिदृश्यों का मूल्यांकन करने के लिए कुछ सरल बेंचमार्किंग परीक्षण चलाए, 2 के बीच की गति में अंतर नगण्य है। सिंगल कोट्स इस तथ्य के कारण हर इतने तेज तेज़ थे कि इसे एक चर की तलाश नहीं करना है और फिर मूल्य को पार्स करना है, लेकिन मुझे कभी ऐसा परिदृश्य नहीं मिला है जहां इससे पदार्थ के लिए काफी अंतर आया है। जो भी आपकी वर्तमान जरूरतों के अनुरूप है उसका उपयोग करें।