2012-03-11 14 views
31

मैं एक साथ एक सरणी का उपयोग किए बिना शून्य के मान के साथ एकाधिक PHP चर को कैसे प्रारंभ कर सकता हूं? मैं कोड है कि अनिवार्य रूप से निम्नलिखित के बराबर है लिखना चाहते हैं:एकाधिक PHP वैरिएबल को एक साथ शुरू करना

$first = 0; 
$second = 0; 
$third = 0; 
$fourth = 0; 
+0

संभावित डुप्लिकेट [एकाधिक चर के लिए समान मान असाइन करें] (http://stackoverflow.com/questions/11651594/assign-same-value-to-multiple-variables) –

उत्तर

62
$first = $second = $third = $fourth = 0; 
+0

क्या यह समस्या में नहीं चलता है आप $ चौथाई बदलते हैं, आप बाकी को भी बदलते हैं? – Alec

+2

यदि आप '$ चौथा' बदलते हैं, तो आप बाकी को नहीं बदलेंगे, क्योंकि' 0' एक मान है, संदर्भ नहीं। अगर आपने कुछ $ 'चौथा = 0 किया होगा; $ तीसरा = और $ चौथाई; $ दूसरा = और $ चौथाई; $ पहला = और $ चौथा', तो अन्य सभी चर ''चौथाई' (मान' 0' नहीं) के संदर्भ होंगे, और 'चौथाई' बदलना अन्य चरों में भी दिखाई देगा। – rid

+5

यह एकाधिक असाइनमेंट काम करता है क्योंकि, PHP में, असाइनमेंट एक अभिव्यक्ति है जो निर्दिष्ट मान देता है। इस प्रकार, '$ चौथा = 0' एक अभिव्यक्ति है जो मान' 0' देता है। यह मान तब '$ तीसरा 'सौंपा गया है, और, चूंकि यह असाइनमेंट भी एक अभिव्यक्ति है,' 0' से '$ तीसरा' असाइन करने का वापसी मूल्य फिर से मान' 0', आदि – rid

15

हालांकि यह संभव है एक के लिए लूप, के रूप में इस प्रकार के भीतर एक अल्पविराम ऑपरेटर का उपयोग कई चर प्रारंभ करने में:

<?php 
for ($a=0,$b=0,$c=0,$d=0;;) { 
    break; 
} 
var_dump($a,$b,$c,$d); 

(डेमो here देखें)

सूची निर्माण एकाधिक परिवर्तनीय गधे करने के लिए एक और अधिक प्रभावी तरीका प्रदान करता है ignment, निम्न उदाहरण में दिखाया गया के रूप में: डेमो

<?php 

list($first, $second, $third, $fourth) = array(0, 0, 0, 0); 
var_dump($first, $second, $third, $fourth); 

देखें here

एक सरणियों के उपयोग एकाधिक प्रारंभ चर प्राप्त करने के लिए से बचने पर पुनर्विचार करना चाह सकते हैं। PHP7.1 साथ + एक इस प्रकार, यदि एक array destructuring कम सारणी वाक्य-विन्यास के साथ उपलब्ध इस्तेमाल सरल, मजबूत कोड लिख सकते हैं:

<?php 

[$first, $second, $third, $fourth ] = [0, 0, 0, 0]; 
var_dump($first, $second, $third, $fourth); 

डेमो here देखें।

अगर किसी को यह सुनिश्चित करने की आवश्यकता है कि प्रारंभ किए जा रहे चर पहले सेट नहीं किए गए थे, तो यह संबंधित discussion देखें, विशेष रूप से यह response

+1

है आप इस विधि का उपयोग कर सकते हैं विभिन्न मानों के साथ कई चर घोषित करने के लिए, और यह इससे कहीं अधिक उपयोगी बनाता है। – Alec

+0

@Alec यह विभिन्न मानों के साथ चर घोषित करने के लिए थोड़ा उलझन में है। –

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