2013-04-13 8 views
6

वहाँ एक निरंतर अंदर दोहरे उद्धरण चिह्नों का मूल्यांकन करने के . का उपयोग कर संयोजन से बचने के लिए कोई तरीका है?क्या डबल कोट्स के अंदर स्थिरांक का मूल्यांकन करना संभव है?

echo "$variable"; 

echo "{$array["index"]}"; 

echo "{$this->myProperty}"; 

Unfortunally गूंज "{MY_CONSTANT}" काम नहीं करते:

उदाहरण के लिए, मैं जैसे काम कर सकें।

तो, उपरोक्त उदाहरणों में निरंतर मूल्यांकन करने का एक तरीका है, जो concatenation से परहेज करते हैं?

मुझे पता है कि कोड के विकल्प हैं और एक ही परिणाम प्राप्त करते हैं, लेकिन मैं केवल स्थिरांक का लक्ष्य रख रहा हूं।

इस मेरे प्रेरणा, एसक्यूएल बयान लिखने के लिए उदाहरण के लिए है:

$sql = "SELECT * FROM {MY_JOIN} WHERE id > 100"; 

कहाँ MY_JOIN निरंतर हो सकता है

" 
orders 
INNER JOIN 
users 
    ON (orders.user_id = users.id) 
" 

या

$dir = DIRECTORY_SEPARATOR."folder1".DIRECTORY_SEPARATOR."folder2".DIRECTORY_SEPARATOR; 

की तरह कुछ से बचने के लिए की तरह कुछ मुझे पता है कि मैं $separator = DIRECTORY_SEPARATOR और कोड जैसे कुछ लिख सकता हूं $dir = "{$separator}folder1{$separator}folder2{$separator}"; लेकिन अगर यह संभव हो सकता है, मैं स्थिरांक सीधे के साथ ऐसा करना चाहते हैं।

+0

इसी प्रकार के प्रश्न: http://stackoverflow.com/questions/1267093/php-static-variables-in-double-quotes लिंक के बारे में – Nate

+0

Thx। मैं सहमत हूं, मेरा प्रश्न उस का एक डुप्लिकेट था। लेकिन मुझे लगता है कि मैंने थोड़ा बेहतर समझाया था और एक प्रेरणा बनाई थी ^^ – GarouDan

उत्तर

1

नहीं, यह संभव नहीं है।

हालांकि, अपने विशेष उदाहरण के लिए दो महान समाधान:

sprintf('SELECT ... %s ...', MY_CONSTANT); 

join(DIRECTORY_SEPARATOR, array('foo', 'bar', 'baz')); 
+1

'जॉइन' को आमतौर पर 'इम्प्लोड' के रूप में लिखा जाता है, हालांकि दोनों एक ही फ़ंक्शन – IMSoP

+0

को संदर्भित करते हैं, मुझे इसके बारे में पता है और मैं 'जुड़ने' शब्द को प्राथमिकता देता हूं। । – deceze

+0

मुझे लगता है कि काफी उचित है। 'इम्प्लोड 'का एक फायदा यह है कि यह स्वाभाविक रूप से' विस्फोट 'के साथ जाता है, जो महत्वपूर्ण रूप से * नहीं *' विभाजन' जैसा ही होता है। – IMSoP

2

दिलचस्प, के रूप में लिंक का सुझाव दिया है, हम इस लैम्ब्डा काम करता है, बहुत ही दिलचस्प के साथ क्या कर सकते हैं।

एक काम कर उदाहरण:

<?php 
$constant = function($cons){ 
    return constant($cons); 
}; 

define('FOO', 'Hello World!'); 
echo "The string says {$constant('FOO')}"; 
संबंधित मुद्दे