दूसरे उत्तर में जोड़ने के लिए।
$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.