summaryrefslogtreecommitdiff
path: root/ext/standard/tests/array/array_map_variation19.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/array/array_map_variation19.phpt')
-rw-r--r--ext/standard/tests/array/array_map_variation19.phpt40
1 files changed, 40 insertions, 0 deletions
diff --git a/ext/standard/tests/array/array_map_variation19.phpt b/ext/standard/tests/array/array_map_variation19.phpt
new file mode 100644
index 0000000..0e56428
--- /dev/null
+++ b/ext/standard/tests/array/array_map_variation19.phpt
@@ -0,0 +1,40 @@
+--TEST--
+Test array_map() function : usage variations - callback pass semantics
+--FILE--
+<?php
+/* Prototype : array array_map ( callback $callback , array $arr1 [, array $... ] )
+ * Description: Applies the callback to the elements of the given arrays
+ * Source code: ext/standard/array.c
+ */
+
+/*
+ * Test array_map() with a pass-by-value callback forced to behave as a pass-by-reference function.
+ */
+
+$arr1 = array('original.0', 'original.1');
+$arr2 = array('original.0', 'original.1');
+
+function callback($a) {
+ $a = "changed";
+}
+
+array_map('callback', $arr1);
+var_dump($arr1);
+
+$ref =& $arr2[0];
+array_map("callback", $arr2);
+var_dump($arr2);
+?>
+--EXPECTF--
+array(2) {
+ [0]=>
+ string(10) "original.0"
+ [1]=>
+ string(10) "original.1"
+}
+array(2) {
+ [0]=>
+ &string(10) "original.0"
+ [1]=>
+ string(10) "original.1"
+} \ No newline at end of file