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