एक ही समय में एक से अधिक वेरिएबल्स पर एक ही मान असाइन करें?


115

मैं एक ही बार में PHP में कई चर के लिए समान मूल्य कैसे निर्दिष्ट कर सकता हूं?

मेरे पास कुछ है:

$var_a = 'A';
$var_b = 'A';
$same_var = 'A';
$var_d = 'A';
$some_var ='A';

मेरे मामले में, मैं सभी चर का नाम एक ही नाम रखने के लिए नहीं रख सकता (जो कि चीजों को और अधिक आसान बना देगा), तो क्या सभी चर के समान मूल्य को बहुत अधिक कॉम्पैक्ट तरीके से असाइन करने का कोई तरीका है?

जवाबों:


248
$var_a = $var_b = $same_var = $var_d = $some_var = 'A';

शानदार, मेरे लिए एकदम सही $ लेवल 1 = $ लेवल 2 = $ लेवल 3 = $ लेवल 4 = असत्य;
भूगोल

1
कोई सीमा है?
डिंपी दुष्ट

9
इसका उपयोग Php क्लास में नहीं किया जा सकता है और यह कच्चा प्रकार है।
चामिंडा बांद्रा

@ChamindaBandara क्या मतलब है कि यह एक PHP वर्ग में इस्तेमाल नहीं किया जा सकता है?
इयोन

4
@ ईइन: करने में $var_a = $var_b = ... = new Class();, सभी चर एक ही उदाहरण का संदर्भ देंगे Class
टिम कूपर

1

दूसरे उत्तर में जोड़ने के लिए।

$a = $b = $c = $d वास्तव में मतलब है $a = ( $b = ( $c = $d ) )

PHP डिफ़ॉल्ट रूपint, string, etc. से संदर्भ द्वारा मूल्य और वस्तुओं द्वारा आदिम प्रकार से गुजरती है

इसका मत

$c = 1234;
$a = $b = $c;
$c = 5678;
//$a and $b = 1234; $c = 5678;

$c = new Object();
$c->property = 1234;
$a = $b = $c;
$c->property = 5678;
// $a,b,c->property = 5678 because they are all referenced to same variable

हालाँकि, आप कीवर्ड का उपयोग करके ऑब्जेक्ट्स को मूल्य से भी पास कर सकते हैं clone, लेकिन आपको कोष्ठक का उपयोग करना होगा।

$c = new Object();
$c->property = 1234;
$a = clone ($b = clone $c);
$c->property = 5678;
// $a,b->property = 1234; c->property = 5678 because they are cloned

लेकिन, आप इस पद्धति का उपयोग करके कीवर्ड के संदर्भ में आदिम प्रकार पारित नहीं कर सकते&

$c = 1234;

$a = $b = &$c; // no syntax error
// $a is passed by value. $b is passed by reference of $c

$a = &$b = &$c; // syntax error

$a = &($b = &$c); // $b = &$c is okay. 
// but $a = &(...) is error because you can not pass by reference on value (you need variable)

// You will have to do manually
$b = &$c;
$a = &$b;
etc.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.