2012-03-23 12 views
5

मैं एक कोडबेस के माध्यम से जा रहा था और एक लाइन में आया जिसके बारे में मेरा कोई सवाल था। यह ऐसा कुछ है जिसे मैंने पहले नहीं देखा है और मैं सोच रहा था कि कोई मेरे लिए इसे समझा सकता है या नहीं। यहां कोड है:

$variableName = $array[1]; 
$variableName{0} = strtolower($variableName{0}); 
$this->property = $variableName; 

घुंघराले ब्रेसिज़ के लिए क्या उपयोग किया जा रहा है? मैंने वैरिएबल को पहले वैरिएबल नामों के रूप में परिभाषित करने के लिए घुंघराले ब्रेसिज़ का उपयोग किया है, लेकिन क्या यह वही बात है? मुझे कोई संसाधन ऑनलाइन नहीं दिख रहा है जो इसे समझाता है, लेकिन मुझे यकीन नहीं है कि मैं सही चीज़ की तलाश कर रहा हूं।

उत्तर

4

पहुँच कि सूचकांक {0} => पहले चार के साथ एक बाइट (गैर UTF8 स्ट्रिंग में)

आप बस के साथ परीक्षण कर सकते हैं:

$var='hello'; 
echo $var{0}; 
+0

दिलचस्प। एक वर्ण के लिए substr() के बजाय एक अच्छा शॉर्टकट - बशर्ते आप पहले से ही उस वैरिएबल की लंबाई को जानते हों जिसके खिलाफ आप परीक्षण कर रहे हैं। – opes

+1

मैं वैसे भी इससे बचूंगा। क्योंकि यदि आप मल्टीबाइट स्ट्रिंग का उपयोग करेंगे तो आपको विकृत स्ट्रिंग मिल जाएगी। Mb_strlen को देखें यदि आपको एकल वर्ण (यूटीएफ -8 का उपयोग करके) – dynamic

+0

आह, अच्छी जानकारी तक पहुंचने की आवश्यकता है। आप हर दिन कुछ नया सीखते हैं। धन्यवाद! – opes

2

यह करने के लिए स्ट्रिंग के प्रथम वर्ण सेट करता है निचला मामला वर्ग कोष्ठक [], सरणी या स्ट्रिंग अनुक्रमण के लिए के रूप में ही

<?php 
$variableName = strtolower(substr($variableName, 0, 1)) . substr($variableName, 1) 
+0

तो अनिवार्य रूप से, बस lcfirst() तो? बशर्ते वेरिएबल एक स्ट्रिंग है। – opes

+1

लॉल। हाँ, मैंने उस समारोह के लिए कभी भी उपयोग नहीं किया है, इसलिए मुझे नहीं पता था कि एक समर्पित था। लेकिन हाँ, वह वही है। – landons

1

घुंघराले ब्रेसिज़ {} काम: यह एक स्ट्रिंग शॉर्टकट ऑपरेटर है, इस के रूप में ही कार्य कर रहा। मुझे अनुमान है कि इसे पर्ल से उधार लिया जाता है, जिसमें स्क्वायर ब्रैकेट का उपयोग सरणी के लिए किया जाता है और ब्रेसिज़ का उपयोग हैश के लिए किया जाता है। लेकिन PHP arrays और हैश में एक ही बात है।

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