2010-09-18 9 views
5

मैं वर्षों से PHP में प्रोग्रामिंग कर रहा हूं, और मैंने हमेशा सोचा है कि स्ट्रिंग को 'प्री-कॉन्सटेनेट' करने का कोई तरीका है या नहीं। उदाहरण:प्री-कॉन्सटेनेशन के लिए PHP शॉर्टंड?

$path = '/lib/modules/something.php'; 
$server = $_SERVER['DOCUMENT_ROOT']; 

मैं आदेश में एक स्ट्रिंग की शुरुआत करने के लिए एक मूल्य संलग्न करने के लिए में साल के लिए इस कर रहा हूँ:

$path = $server . $path; 
// returns: /home/somesite.com/public_html/lib/modules/something.php 

इसके लिए एक आशुलिपि है? बस उत्सुक।

+2

आशुलिपि करके आप की तर्ज पर मतलब है = के रूप में आप अगर आप आगे जोड़ते के बजाय संलग्न करने के लिए चाहता था करना होगा।? –

उत्तर

0

sprintf समारोह के रूप में यह मेरे लिए काम किया है की कोशिश - जानकारी पर यहाँ: http://docs.php.net/sprintf

+0

यह दुर्भाग्य से इसे लंबा बनाता है। –

1

नहीं, लेकिन आप अपने खुद के समारोह लिख सकते हैं:

function pc(&$a, &$b) { 
    $a = $b . $a; 
} 
pc($path, $server); 

pc के लिए ऊपर कॉल कर देगा $path से $server . $path

+9

यह सिर्फ पूरा कोड कम पठनीय बना रहा है। – Gumbo

+0

इस तरह का एक फ़ंक्शन एक शॉर्टेंड के लिए एक सुझाव है, क्योंकि इसके लिए कोई अंतर्निहित वाक्यविन्यास नहीं है। यदि आपको यह पसंद नहीं है, तो इसका उपयोग न करें ...? –

+0

असल में आपने कक्षा की एक विधि लिखी है। फिर भी मैं इस पर गम्बो से सहमत हूं। – AntonioCS

3

एक इतनी गंभीर नहीं जवाब (मैं जानता हूँ कि यह अब है):

$path = strrev($path); 
$path .= strrev($_SERVER['DOCUMENT_ROOT']); 
$path = strrev($path); 

रचनात्मकता की कोई सीमा नहीं है! ;)

2

संयोजन के लिए एक आशुलिपि interpolation है:

$path = "{$_SERVER['DOCUMENT_ROOT']}/lib/modules/something.php"; 
+1

लेकिन इंटरपोलेशन केवल शाब्दिक तारों और चर के साथ काम करता है। – Gumbo

+0

मेरा मतलब था कि चर को जोड़ने के लिए एक शाब्दिक स्ट्रिंग घोषणा की आवश्यकता है। और आप केवल चर का उपयोग कर सकते हैं और फ़ंक्शन कॉल इत्यादि जैसे अन्य मूल्य लौटने वाले अभिव्यक्तियों का उपयोग नहीं कर सकते हैं। – Gumbo

संबंधित मुद्दे