--- /dev/null
+--TEST--
+complex cases of variable assignment - 001
+--FILE--
+<?php
+
+$var = array(1,2,3);
+$var1 = &$var;
+$var = $var[1];
+
+var_dump($var);
+var_dump($var1);
+
+echo "Done\n";
+?>
+--EXPECTF--
+int(2)
+int(2)
+Done
--- /dev/null
+--TEST--
+complex cases of variable assignment - 002
+--FILE--
+<?php
+
+$var = "intergalactic";
+$var1 = &$var;
+$var = $var[5];
+
+var_dump($var);
+var_dump($var1);
+
+echo "Done\n";
+?>
+--EXPECTF--
+string(1) "g"
+string(1) "g"
+Done
+--UEXPECTF--
+unicode(1) "g"
+unicode(1) "g"
+Done
--- /dev/null
+--TEST--
+complex cases of variable assignment - 003
+--FILE--
+<?php
+
+$var = 0.213123123;
+$var1 = &$var;
+$var = $var[1];
+
+var_dump($var);
+var_dump($var1);
+
+echo "Done\n";
+?>
+--EXPECTF--
+NULL
+NULL
+Done
--- /dev/null
+--TEST--
+complex cases of variable assignment - 004
+--FILE--
+<?php
+
+$var = "intergalactic";
+$var1 = "space";
+$var2 = &$var1;
+
+$var = $var2;
+
+var_dump($var);
+var_dump($var1);
+var_dump($var2);
+
+echo "Done\n";
+?>
+--EXPECTF--
+string(5) "space"
+string(5) "space"
+string(5) "space"
+Done
+--UEXPECTF--
+unicode(5) "space"
+unicode(5) "space"
+unicode(5) "space"
+Done