जवाबों:
PHP स्ट्रिंग्स को न केवल दो तरीकों से, बल्कि चार तरीकों सेनिर्दिष्ट किया जा सकताहै।
\'
, औरबैक स्लैशको प्रदर्शित करने के लिए, आप इसे किसी अन्य बैकस्लैश के साथ बच सकते हैं\\
( तो हाँ, यहां तक कि एकल उद्धृत स्ट्रिंग्स पार्स किए जाते हैं )।$type
और आप चाहते हैंecho "The $types are"
। कि चर के लिए दिखेगा$types
। इस उपयोग के आस-पास जाने के लिएecho "The {$type}s are"
आप डॉलर के संकेत से पहले या बाद में बाईं ओर ब्रेस लगा सकते हैं। सरणी चर और इस तरह का उपयोग करने के तरीके को देखने के लिए स्ट्रिंग पार्सिंग पर एक नज़र डालें।<<<
। इस ऑपरेटर के बाद, एक पहचानकर्ता प्रदान किया जाता है, फिर एक नई रेखा। स्ट्रिंग स्वयं अनुसरण करता है, और फिर उद्धरण को बंद करने के लिए फिर से वही पहचानकर्ता। आपको इस सिंटैक्स में उद्धरण से बचने की आवश्यकता नहीं है।<<<
क्रम से की जाती है जिसका उपयोग हेरेडोक्स के लिए किया जाता है, लेकिन जो पहचानकर्ता निम्न है, वह एकल उद्धरणों में संलग्न है, जैसे<<<'EOT'
। नोर्डोक में कोई पार्सिंग नहीं की जाती है।नोट: सिंगल कोट्स के अंदर सिंगल कोट्स और डबल कोट्स के अंदर डबल कोट्स से बच जाना चाहिए:
$string = 'He said "What\'s up?"';
$string = "He said \"What's up?\"";
गति:
मैं दोहरे उद्धरणों की तुलना में तेज़ उद्धरणों पर बहुत अधिक भार नहीं डालूँगा। वे शायद कुछ स्थितियों में तेज हैं। यहां एक लेख समझा जा रहा है जिसमें PHP 4.3 ( Useless Optimizations
नीचे, अनुभाग C
) के बाद से एकल और दोहरे उद्धरण अनिवार्य रूप से समान रूप से तेज़ हैं । इसके अलावा, इस बेंचमार्क पृष्ठ में एकल बनाम दोहरी उद्धरण तुलना है। अधिकांश तुलनाएं समान हैं। एक तुलना है जहाँ सिंगल कोट्स की तुलना में डबल कोट्स धीमी हैं।
\n
मेरे PHP
कोड में कुछ भी एकल उद्धरण में होता है।
"
डबल कोट्स की सुस्ती सभी लेकिन अतीत की बात है। अपडेट्स ने इन दिनों सभी, लेकिन चरम मामलों में, दोहरे उद्धरण चिह्नों के प्रसंस्करण में तेजी से वृद्धि की है।
चीजों का मूल्यांकन दोहरे उद्धरण चिह्नों में किया जाता है लेकिन एकल में नहीं:
$s = "dollars";
echo 'This costs a lot of $s.'; // This costs a lot of $s.
echo "This costs a lot of $s."; // This costs a lot of dollars.
$mailbody = 'I want a line break:\nDone.';
ध्यान में रखते हुए किया गया है \n
जिंदा। जबकि: $mailbody = "I want a line break:\nDone.";
लाइन ब्रेक को पार्स करेगा।
$testWithAsciiAndUtf8Characters = "\x48\x41\x4c\114\117 \u{0147}\u{012B}\u{0144}\u{014D}!";
$simpleTest = '\x48\x41\x4c\114\117 \u{0147}\u{012B}\u{0144}\u{014D}!';
चरित्र अनुक्रम $testWithAsciiAndUtf8Characters
वास्तविक अक्षरों के साथ स्ट्रिंग में बदल गए थे।
'
एकल उद्धृतएक स्ट्रिंग को निर्दिष्ट करने का सबसे सरल तरीका यह है कि इसे एकल उद्धरण में संलग्न किया जाए। एकल उद्धरण आम तौर पर तेज है, और अंदर उद्धृत सब कुछ सादे स्ट्रिंग के रूप में माना जाता है।
उदाहरण:
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 को पार्स करना होगा।
\'
स्ट्रिंग के भीतर उपयोग के लिए एक एकल apostrophe से बचने के लिए (या \\'
बैकस्लैश प्रदर्शित करने के लिए)। ध्यान दें कि पारंपरिक एस्केप सीक्वेंस, जैसे \n
कि न्यूलाइन वर्ण में पार्स नहीं किया जाएगा। PHP डॉक्स स्ट्रिंग्स पर
एक एकल-उद्धृत स्ट्रिंग में व्याख्या किए गए के भीतर चर नहीं हैं। एक डबल-उद्धृत स्ट्रिंग करता है।
इसके अलावा, एक डबल-कोटेड स्ट्रिंग में बैकस्टलैश के बिना एपॉस्ट्रॉफ़ हो सकते हैं, जबकि एकल-उद्धृत स्ट्रिंग में बिना उद्धरण वाले चिह्न हो सकते हैं।
एकल-उद्धृत स्ट्रिंग्स तेजी से रनटाइम पर होते हैं क्योंकि उन्हें पार्स करने की आवश्यकता नहीं होती है।
PHP में, दोनों 'my name'
और "my name"
स्ट्रिंग हैं। आप PHP मैनुअल में इसके बारे में अधिक पढ़ सकते हैं ।
बात आपको पता होनी चाहिए
$a = 'name';
$b = "my $a"; == 'my name'
$c = 'my $a'; != 'my name'
पीएचपी में, लोगों को एक निरंतर स्ट्रिंग परिभाषित करने के लिए एकल उद्धरण का उपयोग करें, जैसे 'a'
, 'my name'
, 'abc xyz'
, दोहरे उद्धरण का उपयोग करते समय एक स्ट्रिंग को परिभाषित करने के पहचानकर्ता की तरह होते हैं "a $b $c $d"
।
और दूसरी बात यह है कि,
echo 'my name';
से तेज है
echo "my name";
परंतु
echo 'my ' . $a;
से धीमी है
echo "my $a";
यह स्ट्रिंग के अन्य उपयोग के लिए सही है।
<?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;
?>
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
चर को पार्स किए बिना ।)
दोनों प्रकार के संलग्न अक्षर तार हैं। एक प्रकार के उद्धरण का उपयोग आसानी से दूसरे प्रकार के उद्धरण को संलग्न करने के लिए किया जाता है। "'"
और '"'
। उद्धरणों के प्रकारों में सबसे बड़ा अंतर यह है कि संलग्न पहचानकर्ता संदर्भों को दोहरे उद्धरण चिह्नों के अंदर प्रतिस्थापित किया जाता है, लेकिन एकल उद्धरणों के अंदर नहीं।
Php में सिंगल कोट्स और डबल कोट्स का उपयोग करने के बीच का अंतर यह है कि यदि हम इको स्टेटमेंट में सिंगल कोट्स का उपयोग करते हैं तो इसे एक स्ट्रिंग के रूप में माना जाता है। ... लेकिन अगर हम दोहरे उद्धरण चिह्नों के भीतर चर नाम दर्ज करते हैं तो यह स्ट्रिंग के साथ-साथ उस चर के मूल्य को भी आउटपुट करेगा।
यहां वैरिएबल के साथ सिंगल और डबल कोट्स की कुछ संभावनाएं हैं
$world = "world";
"Hello '.$world.' ";
'hello ".$world."';
एक बात:
यह ध्यान रखना बहुत महत्वपूर्ण है कि हेरेडोक के समापन पहचानकर्ता के साथ लाइन में कोई अन्य वर्ण नहीं होना चाहिए , सिवायमोलोन (;) को छोड़कर । इसका मतलब है कि विशेष रूप से यह है कि पहचानकर्ता को इंडेंट नहीं किया जा सकता है , और अर्धविराम से पहले या बाद में कोई स्थान या टैब नहीं हो सकता है ।
उदाहरण:
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
हो सकता है कि मैं थोड़ा लेट हो गया हूँ, और थोड़ा ऑफ-टॉपिक, लेकिन यहाँ वैसे भी है:
जरूरी नहीं कि आपको अपनी स्ट्रिंग सामग्री के बीच चयन करना हो:
alert("It's \"game\" time.");
याalert('It\'s "game" time.');
आप अंग्रेजी उद्धरण चिह्न के उपयोग, और apostrophe के लिए सही चरित्र से परिचित हैं, तो आप या तो डबल या एकल उद्धरण चिह्नों का उपयोग कर सकते हैं, क्योंकि यह नहीं होगा मामला अब और:
alert("It’s “game” time.");
औरalert('It’s “game” time.');
${variablename}
।