एक स्ट्रिंग चर के साथ एक PHP चर मिश्रण


140

कहो कि मेरे पास एक चर है $testऔर इसे इस प्रकार परिभाषित किया गया है:$test = 'cheese'

मैं उत्पादन करना चाहता हूं cheesey, जिसे मैं इस तरह कर सकता हूं:

echo $test . 'y'

लेकिन मैं कुछ इस तरह कोड को सरल बनाना पसंद करूंगा (जो काम नहीं करेगा):

echo "$testy"

वहाँ एक तरीका है के yरूप में इलाज किया जा सकता है क्योंकि यह चर से अलग थे?


1
आपके द्वारा अंत में आपके पोस्ट का $test = cheese;मतलब है $test = 'cheese';(अगर मैं गलत नहीं हूँ) ...
आउटकास्ट

जवाबों:


242
echo "{$test}y";

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

इसके अलावा, यह सिंगल कोट्स के साथ काम नहीं करता है। इसलिए:

echo '{$test}y';

उत्पादन होगा

{$test}y

1
क्या इस तरह की विधि के साथ इनलाइन फ़ंक्शन कॉल संभव है? कुछ ऐसा ही है"foo{implode(',', [abc])}bar"
उल्टा

@ उलटा नहीं। बिल्डिंग स्ट्रिंग्स अक्सर प्रसंस्करण होने के बाद किया जाता है। अपने आउटपुट को तैयार करने के बीच में कार्यों को कॉल करना यह अक्सर वह नहीं होता है जो आप चाहते हैं। फ़ंक्शन को पहले कॉल करने पर विचार करें, परिणाम को एक चर में संग्रहीत करें और फिर आप इसे स्ट्रिंग में शामिल कर सकते हैं echo "like so: $var";
जोकेम कूइजपर्स

कैसे एक ternary ऑपरेटर को एम्बेड करना है जो एक स्ट्रिंग में दो अलग-अलग तारों का मूल्यांकन करता है?
ओल्डबॉय

50

आप {}अपने वैरिएबल का उपयोग कर सकते हैं , इसे उसके बाद से अलग करने के लिए:

echo "{$test}y"

संदर्भ के रूप में, आप PHP मैनुअल के वैरिएबल पार्सिंग - कॉम्प्लेक्स (घुंघराले) सिंटैक्स अनुभाग पर एक नज़र डाल सकते हैं ।


धन्यवाद। मैंने स्ट्रिंग्स मैनुअल को पढ़ने की कोशिश की, लेकिन यह निश्चित नहीं था कि मैं जो खोज रहा था, मैं उसके लिए क्या खोज रहा था।
मैट मैकडॉनल्ड्स

2
आपका स्वागत है :-) हाँ, हमेशा सही अनुभाग ढूंढना आसान नहीं है, जब आप वास्तव में नहीं जानते कि आप क्या खोज रहे हैं ^ ^
पास्कल मार्टिन

ध्यान देने योग्य बात यह है कि एक बार जब आप {} के अंदर होते हैं, तो आप भावों का उपयोग कर सकते हैं, न कि केवल चर नामों का, जैसे कि {$ x-> y [3]} या जो भी हो।
TextGeek

3

उदाहरण:

$test = "chees";
"${test}y";

यह उत्पादन होगा:

पनीर का

यह वही है जो आप ढूंढ रहे हैं।


-3
$bucket = '$node->' . $fieldname . "['und'][0]['value'] = " . '$form_state' . "['values']['" . $fieldname . "']";

print $bucket;

पैदावार:

$node->mindd_2_study_status['und'][0]['value'] = $form_state['values']
['mindd_2_study_status']
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.