summaryrefslogtreecommitdiff
path: root/tests/lang/bug21600.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lang/bug21600.phpt')
-rw-r--r--tests/lang/bug21600.phpt39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/lang/bug21600.phpt b/tests/lang/bug21600.phpt
new file mode 100644
index 0000000..6ecf69a
--- /dev/null
+++ b/tests/lang/bug21600.phpt
@@ -0,0 +1,39 @@
+--TEST--
+Bug #21600 (assign by reference function call changes variable contents)
+--INI--
+error_reporting=4095
+--FILE--
+<?php
+$tmp = array();
+$tmp['foo'] = "test";
+$tmp['foo'] = &bar($tmp['foo']);
+var_dump($tmp);
+
+unset($tmp);
+
+$tmp = array();
+$tmp['foo'] = "test";
+$tmp['foo'] = &fubar($tmp['foo']);
+var_dump($tmp);
+
+function bar($text){
+ return $text;
+}
+
+function fubar($text){
+ $text = &$text;
+ return $text;
+}
+?>
+--EXPECTF--
+Strict Standards: Only variables should be assigned by reference in %sbug21600.php on line 4
+array(1) {
+ ["foo"]=>
+ string(4) "test"
+}
+
+Strict Standards: Only variables should be assigned by reference in %sbug21600.php on line 11
+array(1) {
+ ["foo"]=>
+ string(4) "test"
+}