2011-07-12 13 views
5

क्या मैं एक चर के साथ सिंगल कोट्स में गूंज सकता हूं?क्या मैं सिंगल कोट्स के साथ एक चर बदल सकता हूं?

उदाहरण

echo 'I love my $variable.'; 

मैं ऐसा करने की जरूरत है क्योंकि मैं भी प्रतिध्वनित करने के लिए एचटीएमएल के बहुत सारे है।

उत्तर

2

सं। वैरिएबल (और विशेष वर्ण) केवल डबल कोट्स के साथ सीमित तारों में विस्तारित होते हैं। आप एक एकल उद्धरण सीमांकित स्ट्रिंग में एक चर शामिल करना चाहते हैं, तो आप के बजाय यह श्रेणीबद्ध करने के लिए है:

echo 'I love my '.$variable.'.'; 

तुम भी अपने HTML के दोहरे उद्धरण चिह्नों से बच सकता है अगर आप नहीं बल्कि डबल उद्धरण से सीमांकित तार का उपयोग करेंगे :

echo "<a href=\"$url\">$text</a>"; 

, पीएचपी मैनुअल on strings, विशेष रूप से भाग देखें string parsing बारे में अधिक जानकारी के लिए। या तो उपयोग

18

आप करना होगा:

echo 'I love my ' . $variable . '.'; 

इस विधि स्ट्रिंग के लिए चर जोड़ देता है।

या आप इस्तेमाल कर सकते हैं:

echo "I love my $variable."; 

सूचना दोहरे उद्धरण चिह्नों यहां इस्तेमाल किया!

0

सं। ' चर का विश्लेषण नहीं करेगा। उपयोग

echo 'I love my '.$variable.'.'; 

या

echo "I love my {$variable}. And I have \" some characters escaped"; 
0
स्ट्रिंग के भीतर

नहीं है, लेकिन आप स्ट्रिंग से बाहर निकलें और चर जोड़ सकते हैं।

echo 'I love my '.$variable.'.'; 

अन्य विकल्प बस डबल से बचने के लिए किया जाएगा उद्धरण।

echo "I love my \"$variable\"."; 

या बस में और php से बाहर जाना चर प्रतिध्वनित करने के लिए (हालांकि बदसूरत)।

I love my <?php echo $variable; ?>. 
With short tags enabled, I love my <?=$variable?>. 

अंततः हेरेडोक प्रारूप है जो चर के साथ सिंगल और डबल कोट्स दोनों की अनुमति देता है।

echo <<<HTML 
I love my $variable. '"... 
HTML; 
6

यदि बहुत सारे टेक्स्ट हैं, तो हेरेडोक वाक्यविन्यास पर एक नज़र डालें।

$var = <<<EOT 
<div style="">Some 'text' {$variable}</div> 
EOT; 
0

php.net से लिया: "ध्यान दें: डबल-कोटेड और हियरडॉक वाक्यविन्यास, चर के विपरीत और विशेष वर्णों के लिए दृश्यों से बचने का विस्तार नहीं किया जाएगा जब वे एक उद्धृत स्ट्रिंग में होते हैं।"

तो उत्तर ऐसा नहीं है जिसे आप नहीं कर सकते।लेकिन आप इसे इस तरह से कर सकते हैं:

echo 'I love my' . $variable . '.'; 

यह इस तरह से क्लीनर होगा।

3

documentation का कहना है:

नोट:double-quoted और heredoc वाक्यविन्यास के विपरीत, variables और भागने विशेष वर्णों के लिए दृश्यों विस्तारित किया जा नहीं होगा, जब वे एक उद्धृत स्ट्रिंग में होते हैं।

तो उत्तर इस तरह से नहीं है।

समाधान सरल है:

एचटीएमएल नहीं echo करो।

जब तक आप आंशिक विचार या सामान की तरह नहीं बना रहे हैं, तो HTML को गूंजने का कोई कारण नहीं है। एचटीएमएल बजाय में एम्बेड पीएचपी:

<div class="foo"> 
    <span><?php echo $value; ?></span> 
</div> 

लाभ हैं:

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

†: इस मामले में कम से कम heredoc[docs] बदतर विकल्प नहीं है।

-5

या आसान तरीका:

awk "\$1 < $variable" 
+2

यह प्रश्न का उत्तर कैसे देता है? – Werner

-1

उपयोग भागने गाना-उद्धरण पाठ स्ट्रिंग के चारों ओर के रूप में:

variable='my dog' 

echo \''I love ' $variable\' 

=> 'मैं अपने कुत्ते को प्यार'

+0

वह कोड एक पार्स त्रुटि फेंकता है। – Quentin

0

बगल में स्ट्रिंग कॉन्सटेनेशन जैसे अन्य उपयोगकर्ताओं द्वारा उल्लिखित समाधान, आप प्लेसहोल्डर्स का निम्नानुसार उपयोग कर सकते हैं;

नोट करें% s स्ट्रिंग के लिए है।

$variable = 'what ever'; 
printf('The $variable is %s', $variable); 
संबंधित मुद्दे