2012-04-05 11 views
7

में स्ट्रिंग वहाँ एक स्ट्रिंग में चर जैसे विस्फोट के लिए एक रास्ता हैविस्फोट चर

some_function($min, $max, "3, 20"); 

जैसे $ मिनट मान 3 असाइन किया गया है और $ अधिकतम मान 20

मैं मुझे पता असाइन किया गया है कि बस

$data = explode("3, 20"); 

बस सोच रहा है कि कोई और तरीका है या नहीं।

उत्तर

17

PHP की भाषा निर्माण list() एक सरणी निर्दिष्ट करके चर (या यहां तक ​​कि अन्य सरणी कुंजी) को एकाधिक असाइनमेंट कर सकता है।

list($min, $max) = explode(",", "3,20"); 

हालांकि, आप अभी भी अपने चर करने के लिए एक trim() लागू करने के लिए के बाद से $max मूल्य एक प्रमुख अंतरिक्ष के लिए होता है, या preg_split('/\s*,\s*/', $string) साथ explode() की जगह के लिए अल्पविराम और आसपास के खाली स्थान के पर विभाजित करने के लिए की आवश्यकता होगी।

नोट:list() साथ सावधानी उपयोग सुनिश्चित करें कि सरणी आप बताए रहे तत्वों की एक ही नंबर के रूप में list() वेरिएबल नहीं है शामिल किया जाना है। उन्हें PHP 5.x में दाएं से बाएं से असाइन किया गया है, बाएं से दाएं नहीं, इसलिए यदि आप बाईं ओर एक वैरिएबल को दाईं ओर अपनी मूल सामग्री के साथ ओवरराइट करते हैं, तो आपको अप्रत्याशित परिणाम मिल सकते हैं। यह उदाहरण in the PHP docs के साथ विस्तृत है। पीएचपी 7 के लिए

अद्यतन: पीएचपी 7 काम क्रम व्यवहार सही

+0

तकनीकी तौर पर करने के लिए ऐसी है कि list() तर्क बाएं से आवंटित कर रहे हैं यह है कि 'सूची के * भाषा निर्माण *()' बदल जाता है। लेकिन +1। – DaveRandom

+2

@ डेव रैंडम मैंने नहीं कहा कि 'सूची()' एक फ़ंक्शन था, मैंने कहा कि _ _ का कार्य _ 'सूची() 'है। सूक्ष्म, लेकिन मैं वैसे भी स्पष्टीकरण दूंगा :) –

+0

आह, स्पर्श ... ;-) – DaveRandom

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