summaryrefslogtreecommitdiff
path: root/ext/standard/tests/array/count_variation3.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/array/count_variation3.phpt')
-rw-r--r--ext/standard/tests/array/count_variation3.phpt39
1 files changed, 39 insertions, 0 deletions
diff --git a/ext/standard/tests/array/count_variation3.phpt b/ext/standard/tests/array/count_variation3.phpt
new file mode 100644
index 0000000..e11b4c2
--- /dev/null
+++ b/ext/standard/tests/array/count_variation3.phpt
@@ -0,0 +1,39 @@
+--TEST--
+Test count() function : usage variations - Infinitely recursive array
+--FILE--
+<?php
+/* Prototype : int count(mixed $var [, int $mode])
+ * Description: Count the number of elements in a variable (usually an array)
+ * Source code: ext/standard/array.c
+ */
+
+/*
+ * Pass count() an infinitely recursive array as $var argument
+ * This will stop the script before it reaches the end.
+ */
+
+echo "*** Testing count() : usage variations ***\n";
+
+$array1 = array (1, 2, 'three');
+// get an infinitely recursive array
+$array1[] = &$array1;
+
+echo "\n-- \$mode not set: --\n";
+var_dump(count ($array1));
+
+echo "\n-- \$mode = 1: --\n";
+var_dump(count ($array1, 1));
+
+echo "Done";
+?>
+--EXPECTF--
+*** Testing count() : usage variations ***
+
+-- $mode not set: --
+int(4)
+
+-- $mode = 1: --
+
+Warning: count(): recursion detected in %s on line %d
+int(12)
+Done