PHP में सिंगल-उद्धृत और डबल-उद्धृत तारों के बीच क्या अंतर है?




string syntax (8)

मैं PHP प्रोग्रामिंग में एक विशेषज्ञ नहीं हूं, लेकिन मैं थोड़ा उलझन में हूं क्यों मैं PHP में कुछ कोड को सिंगल कोट्स में रखे स्ट्रिंग के साथ और कभी-कभी डबल कोट्स में देखता हूं।

मैं सिर्फ .NET, या C भाषा में जानता हूं, अगर यह एकल उद्धरण में है, तो इसका मतलब है कि यह एक वर्ण है, स्ट्रिंग नहीं।


एकल, डबल, हेरेडोक, और अबडोक उद्धरण का उदाहरण

<?php

    $fname = "David";

    // Single quotes
    echo 'My name is $fname .'; // My name is $fname.

    // Double quotes
    echo "My name is $fname."; // My name is David.`

    // Curly braces to isolate the name of the variable
    echo "My name is {$fname}."; // My name is David.

    // Example of heredoc
    echo $foo = <<<abc
    My name is {$fname}
    abc;

        // Example of nowdoc
        echo <<< 'abc'
        My name is "$name".
        Now, I am printing some
    abc;

?>

सिंगल उद्धृत

एक स्ट्रिंग निर्दिष्ट करने का सबसे आसान तरीका यह एकल कोट्स में संलग्न करना है। सिंगल कोट आमतौर पर तेज़ होता है, और अंदर उद्धृत सब कुछ सादा स्ट्रिंग के रूप में माना जाता है।

उदाहरण:

echo 'Start with a simple string';
echo 'String\'s apostrophe';
echo 'String with a php variable'.$name;

डबल उद्धृत

कोड को अलग करने के लिए अवधि का उपयोग करने से बचने के लिए PHP में डबल कोट्स का उपयोग करें (नोट: स्ट्रिंग में कॉन्सटेनेशन ( . ) ऑपरेटर का उपयोग नहीं करना चाहते हैं तो चर शामिल करने के लिए घुंघराले ब्रेसिज़ {} का उपयोग करें।

उदाहरण:

echo "Start with a simple string";
echo "String's apostrophe";
echo "String with a php variable {$name}";

PHP में डबल कोट बनाम एक प्रदर्शन लाभ एकल उद्धरण है?

हाँ। सिंगल कोट्स का उपयोग करने के लिए यह थोड़ा तेज़ है।

PHP एकल बोली के अंदर क्या है इसकी व्याख्या करने के लिए अतिरिक्त प्रसंस्करण का उपयोग नहीं करेगा। जब आप डबल कोट्स का उपयोग करते हैं तो PHP को यह जांचने के लिए पार्स करना पड़ता है कि वहां कोई चर है या नहीं।


PHP में, सिंगल कोट टेक्स्ट को स्ट्रिंग वैल्यू के रूप में माना जाता है और डबल कोट टेक्स्ट उनके मान को प्रतिस्थापित और प्रोसेस करके वेरिएबल्स को पार्स करेगा।

$test = "variable";
echo "Hello Mr $test"; // the output would be: Hello Mr variable
echo 'Hello Mr $test'; // the output would be: Hello Mr $test

यहां, डबल कोट पार्स मान और सिंगल कोट को स्ट्रिंग मान के रूप में माना जाता है ($ test variable को पार्स किए बिना।)


एक एकल उद्धृत स्ट्रिंग में व्याख्या के भीतर चर नहीं होते हैं। एक डबल उद्धृत स्ट्रिंग करता है।

इसके अलावा, एक डबल-उद्धृत स्ट्रिंग में बैकस्लाश के बिना एस्ट्रोफ़ेस हो सकते हैं, जबकि एकल-उद्धृत स्ट्रिंग में अनचाहे उद्धरण चिह्न हो सकते हैं।

एकल-उद्धृत तार रनटाइम पर तेज़ होते हैं क्योंकि उन्हें पार्स करने की आवश्यकता नहीं होती है।


दोनों प्रकार के संलग्न पात्र तार हैं। एक प्रकार का उद्धरण आसानी से दूसरे प्रकार के उद्धरण को घेरने के लिए उपयोग किया जाता है। उद्धरण के प्रकारों के बीच सबसे बड़ा अंतर यह है कि संलग्न पहचानकर्ता संदर्भ दोहरे उद्धरणों के लिए प्रतिस्थापित किए जाते हैं, लेकिन सिंगल कोट्स के अंदर नहीं।


शायद मैं थोड़ा देर हो चुकी हूं, और थोड़ा सा विषय, लेकिन यहां यह वैसे भी है ...

आपको अपनी स्ट्रिंग की सामग्री के कारण चुनने की ज़रूरत नहीं है:
alert("It's \"game\" time."); या alert('It\'s "game" time.');

इसके बजाए, आप इस तरह टाइप कर सकते हैं, और फिर डबल या सिंगल कोट्स का उपयोग कर सकते हैं, क्योंकि इससे कोई फर्क नहीं पड़ता:
alert("It's “game” time."); और alert('It's “game” time.');


एक बात:

यह ध्यान रखना बहुत महत्वपूर्ण है कि हेरिकोक के समापन पहचानकर्ता के साथ लाइन में अर्धविराम (;) को छोड़कर कोई अन्य वर्ण नहीं होना चाहिए। इसका मतलब है कि विशेष रूप से पहचानकर्ता को इंडेंट नहीं किया जा सकता है, और अर्धविराम से पहले या उसके बाद कोई रिक्त स्थान या टैब नहीं हो सकता है।

उदाहरण:

   $str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

$name = 'test';
$singleQuote = 'This is example for single quote $name'; // here $name variable not evaluating 
echo $singleQuote; // Output: This is example for single quote $name
$singleQuote = "This is example for single quote $name"; // here $name variable will evaluate and replace variable value
echo $singleQuote; // Output: This is example for single quote test

Also inside single quote expression evaluate faster campare to double quotes






syntax