summaryrefslogtreecommitdiff
path: root/tests/lang/bug22592.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lang/bug22592.phpt')
-rw-r--r--tests/lang/bug22592.phpt53
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/lang/bug22592.phpt b/tests/lang/bug22592.phpt
new file mode 100644
index 0000000..2705841
--- /dev/null
+++ b/tests/lang/bug22592.phpt
@@ -0,0 +1,53 @@
+--TEST--
+Bug #22592 (cascading assignments to strings with curly braces broken)
+--FILE--
+<?php
+function error_hdlr($errno, $errstr) {
+ echo "[$errstr]\n";
+}
+
+set_error_handler('error_hdlr');
+
+$i = 4;
+$s = "string";
+
+$result = "* *-*";
+var_dump($result);
+$result[6] = '*';
+var_dump($result);
+$result[1] = $i;
+var_dump($result);
+$result[3] = $s;
+var_dump($result);
+$result[7] = 0;
+var_dump($result);
+$a = $result[1] = $result[3] = '-';
+var_dump($result);
+$b = $result[3] = $result[5] = $s;
+var_dump($result);
+$c = $result[0] = $result[2] = $result[4] = $i;
+var_dump($result);
+$d = $result[6] = $result[8] = 5;
+var_dump($result);
+$e = $result[1] = $result[6];
+var_dump($result);
+var_dump($a, $b, $c, $d, $e);
+$result[-1] = 'a';
+?>
+--EXPECT--
+string(5) "* *-*"
+string(7) "* *-* *"
+string(7) "*4*-* *"
+string(7) "*4*s* *"
+string(8) "*4*s* *0"
+string(8) "*-*-* *0"
+string(8) "*-*s*s*0"
+string(8) "4-4s4s*0"
+string(9) "4-4s4s505"
+string(9) "454s4s505"
+string(1) "-"
+string(1) "s"
+string(1) "4"
+string(1) "5"
+string(1) "5"
+[Illegal string offset: -1]