summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMárcio Almada <marcio3w@gmail.com>2015-01-24 01:50:59 -0300
committerMárcio Almada <marcio3w@gmail.com>2015-01-27 07:16:22 -0300
commit927ebc978907c54baa9db0cbe6d8bfacb763c456 (patch)
tree7f39b37948f9306b18159cb38d915db3b9110e80
parentf869bf3829c6b2c94011747c69ed8f32412c9e03 (diff)
downloadphp-git-927ebc978907c54baa9db0cbe6d8bfacb763c456.tar.gz
add another test to #1022
-rw-r--r--ext/standard/tests/strings/str_replace_array_refs2.phpt27
1 files changed, 27 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/str_replace_array_refs2.phpt b/ext/standard/tests/strings/str_replace_array_refs2.phpt
new file mode 100644
index 0000000000..788c738344
--- /dev/null
+++ b/ext/standard/tests/strings/str_replace_array_refs2.phpt
@@ -0,0 +1,27 @@
+--TEST--
+Test str_replace() function and array refs, more cases
+--FILE--
+<?php
+$closure = function (array $array, array $keys, $value)
+{
+ $current = &$array;
+ foreach ($keys as $key)
+ $current = &$current[$key];
+ $current = $value;
+ return $array;
+};
+
+class SomeClass { public $prop; }
+
+$obj = new SomeClass;
+$obj->prop = ['x' => 'property'];
+$obj->prop = $closure($obj->prop, ['x'], 'a');
+var_dump(str_replace(array_keys($obj->prop), $obj->prop, "x property"));
+
+$array = ['x' => 'property'];
+$array = $closure($array, ['x'], 'a');
+var_dump(str_replace(array_keys($array), $array, "x property"));
+
+--EXPECTF--
+string(10) "a property"
+string(10) "a property"