summaryrefslogtreecommitdiff
path: root/ext/standard/tests/array/array_push_variation4.phpt
diff options
context:
space:
mode:
authorMark A. Hershberger <mah@debian.(none)>2009-03-25 00:39:08 -0400
committerMark A. Hershberger <mah@debian.(none)>2009-03-25 00:39:08 -0400
commit993e1866df547532a05ab6db76c9ff5aefc9a3df (patch)
tree169d3bde0974235d3cde164786ef6f381a4749a7 /ext/standard/tests/array/array_push_variation4.phpt
parent1f589a2bd44ba835ad1b009a5d83abd453724829 (diff)
downloadphp-upstream/5.2.6.tar.gz
Imported Upstream version 5.2.6upstream/5.2.6
Diffstat (limited to 'ext/standard/tests/array/array_push_variation4.phpt')
-rw-r--r--ext/standard/tests/array/array_push_variation4.phpt134
1 files changed, 134 insertions, 0 deletions
diff --git a/ext/standard/tests/array/array_push_variation4.phpt b/ext/standard/tests/array/array_push_variation4.phpt
new file mode 100644
index 000000000..1048d80cf
--- /dev/null
+++ b/ext/standard/tests/array/array_push_variation4.phpt
@@ -0,0 +1,134 @@
+--TEST--
+Test array_push() function : usage variations - referenced variables
+--INI--
+allow_call_time_pass_reference=on
+--FILE--
+<?php
+/* Prototype : int array_push(array $stack, mixed $var [, mixed $...])
+ * Description: Pushes elements onto the end of the array
+ * Source code: ext/standard/array.c
+ */
+
+/*
+ * Test array_push when:
+ * 1. passed referenced variables as $var arguments
+ * 2. $var argument is a reference to $stack argument
+ */
+
+echo "*** Testing array_push() : usage variations ***\n";
+
+$var1 = 'a';
+$var2 = 'b';
+$var3 = 'c';
+$var4 = 'x';
+$var5 = 'y';
+$var6 = 'z';
+
+$array = array(1, 2, 3);
+
+echo "\n-- Pass array_push referenced varialbes as \$var arguments --\n";
+var_dump(array_push($array, &$var1, &$var2, &$var3, &$var4, &$var5, &$var6));
+var_dump($array);
+
+echo "\n-- Pass \$var argument which is a reference to \$stack argument --\n";
+var_dump(array_push($array, &$array));
+var_dump($array);
+
+/* break cycle */
+$array[9] = null;
+
+echo "Done";
+?>
+--EXPECTF--
+*** Testing array_push() : usage variations ***
+
+-- Pass array_push referenced varialbes as $var arguments --
+int(9)
+array(9) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+ [3]=>
+ &string(1) "a"
+ [4]=>
+ &string(1) "b"
+ [5]=>
+ &string(1) "c"
+ [6]=>
+ &string(1) "x"
+ [7]=>
+ &string(1) "y"
+ [8]=>
+ &string(1) "z"
+}
+
+-- Pass $var argument which is a reference to $stack argument --
+int(10)
+array(10) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+ [3]=>
+ &string(1) "a"
+ [4]=>
+ &string(1) "b"
+ [5]=>
+ &string(1) "c"
+ [6]=>
+ &string(1) "x"
+ [7]=>
+ &string(1) "y"
+ [8]=>
+ &string(1) "z"
+ [9]=>
+ &array(10) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+ [3]=>
+ &string(1) "a"
+ [4]=>
+ &string(1) "b"
+ [5]=>
+ &string(1) "c"
+ [6]=>
+ &string(1) "x"
+ [7]=>
+ &string(1) "y"
+ [8]=>
+ &string(1) "z"
+ [9]=>
+ &array(10) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+ [3]=>
+ &string(1) "a"
+ [4]=>
+ &string(1) "b"
+ [5]=>
+ &string(1) "c"
+ [6]=>
+ &string(1) "x"
+ [7]=>
+ &string(1) "y"
+ [8]=>
+ &string(1) "z"
+ [9]=>
+ *RECURSION*
+ }
+ }
+}
+Done