]> granicus.if.org Git - php/commitdiff
add 64bit tests
authorAntony Dovgal <tony2001@php.net>
Mon, 14 May 2007 11:04:30 +0000 (11:04 +0000)
committerAntony Dovgal <tony2001@php.net>
Mon, 14 May 2007 11:04:30 +0000 (11:04 +0000)
ext/standard/tests/array/array_keys_64bit.phpt [new file with mode: 0644]
ext/standard/tests/array/array_values_64bit.phpt [new file with mode: 0644]
ext/standard/tests/array/end_64bit.phpt [new file with mode: 0644]
ext/standard/tests/general_functions/debug_zval_dump_b_64bit.phpt [new file with mode: 0644]
ext/standard/tests/general_functions/is_float_64bit.phpt [new file with mode: 0644]
ext/standard/tests/general_functions/is_int_64bit.phpt [new file with mode: 0644]
ext/standard/tests/general_functions/print_r_64bit.phpt [new file with mode: 0644]
ext/standard/tests/general_functions/var_dump_64bit.phpt [new file with mode: 0644]

diff --git a/ext/standard/tests/array/array_keys_64bit.phpt b/ext/standard/tests/array/array_keys_64bit.phpt
new file mode 100644 (file)
index 0000000..3ffba0b
--- /dev/null
@@ -0,0 +1,472 @@
+--TEST--
+Test array_keys() function
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--INI--
+precision=14
+--FILE--
+<?php
+/*
+Prototype: array array_keys( array $input [, mixed $search_value [, 
+                             bool $strict]]);
+Description: Return all the keys of an array
+*/
+
+echo "*** Testing array_keys() on basic array operation ***\n";
+$basic_arr = array("a" => 1, "b" => 2, 2.0 => 2.0, -23.45 => "asdasd",
+                   array(1,2,3));
+var_dump(array_keys($basic_arr));
+
+echo "\n*** Testing array_keys() on various arrays ***";
+$arrays = array(
+  array(), 
+  array(0),
+  array( array() ), 
+  array("Hello" => "World"), 
+  array("" => ""),  
+  array(1,2,3, "d" => array(4,6, "d")),
+  array("a" => 1, "b" => 2, "c" =>3, "d" => array()),
+  array(0 => 0, 1 => 1, 2 => 2, 3 => 3),  
+  array(0.001=>3.000, 1.002=>2, 1.999=>3, "a"=>3, 3=>5, "5"=>3.000),
+  array(TRUE => TRUE, FALSE => FALSE, NULL => NULL, "\x000", "\000"),
+  array("a" => "abcd", "a" => "", "ab" => -6, "cd" => -0.5 ),
+  array(0 => array(), 1=> array(0), 2 => array(1), ""=> array(),""=>"" )
+);
+
+$i = 0;
+/* loop through to test array_keys() with different arrays */
+foreach ($arrays as $array) {
+  echo "\n-- Iteration $i --\n";
+  var_dump(array_keys($array)); 
+  $i++;
+}
+
+echo "\n*** Testing array_keys() on all the types other than arrays ***";
+$types_arr = array(
+  TRUE => TRUE,
+  FALSE => FALSE,
+  1 => 1,
+  0 => 0,
+  -1 => -1, 
+  "1" => "1",
+  "0" => "0",
+  "-1" => "-1",
+  NULL,
+  array(),
+  "php" => "php",
+  "" => ""
+);
+$values = array(TRUE, FALSE, 1, 0, -1, "1", "0", "-1",  NULL, array(), "php", "");
+foreach ($values as $value){
+  echo "\n-- Loose type checking --\n";
+  var_dump(array_keys($types_arr, $value)); 
+  echo "\n-- strict type checking --\n";
+  var_dump(array_keys($types_arr, $value, TRUE));
+}
+
+echo "\n*** Testing array_keys() with resource type ***\n";
+$resource1 = fopen( __FILE__, "r");
+$resource2 = opendir( "." );
+
+/* creating an array with resource types as elements */
+$arr_resource = array($resource1, $resource2); 
+
+var_dump(array_keys($arr_resource, $resource1));  // loose type checking 
+var_dump(array_keys($arr_resource, $resource1, TRUE));  // strict type checking
+var_dump(array_keys($arr_resource, $resource2));  // loose type checking
+var_dump(array_keys($arr_resource, $resource2, TRUE));  // strict type checking
+
+echo "\n*** Testing array_keys() on range of values ***\n";
+$arr_range = array(
+  2147483647 => 1,
+  2147483648 => 2,
+  -2147483647 => 3, 
+  -2147483648 => 4,
+  -2147483649 => 5,
+  -0 => 6,
+  0 => 7
+);
+var_dump(array_keys($arr_range));
+
+echo "\n*** Testing array_keys() on an array created on the fly ***\n";
+var_dump(array_keys(array("a" => 1, "b" => 2, "c" => 3)));
+var_dump(array_keys(array()));  // null array
+
+echo "\n*** Testing error conditions ***";
+var_dump(array_keys(100));
+var_dump(array_keys("string"));
+var_dump(array_keys(new stdclass));  // object
+var_dump(array_keys());  // Zero arguments
+var_dump(array_keys(array(), "", TRUE, 100));  // args > expected
+var_dump(array_keys(array(1,2,3, array() => array())));  // (W)illegal offset
+
+echo "Done\n";
+
+--CLEAN--
+/* Closing the resource handles */
+fclose( $resource1 );
+closedir( $resource2 );
+?>
+--EXPECTF--
+*** Testing array_keys() on basic array operation ***
+array(5) {
+  [0]=>
+  string(1) "a"
+  [1]=>
+  string(1) "b"
+  [2]=>
+  int(2)
+  [3]=>
+  int(-23)
+  [4]=>
+  int(3)
+}
+
+*** Testing array_keys() on various arrays ***
+-- Iteration 0 --
+array(0) {
+}
+
+-- Iteration 1 --
+array(1) {
+  [0]=>
+  int(0)
+}
+
+-- Iteration 2 --
+array(1) {
+  [0]=>
+  int(0)
+}
+
+-- Iteration 3 --
+array(1) {
+  [0]=>
+  string(5) "Hello"
+}
+
+-- Iteration 4 --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+
+-- Iteration 5 --
+array(4) {
+  [0]=>
+  int(0)
+  [1]=>
+  int(1)
+  [2]=>
+  int(2)
+  [3]=>
+  string(1) "d"
+}
+
+-- Iteration 6 --
+array(4) {
+  [0]=>
+  string(1) "a"
+  [1]=>
+  string(1) "b"
+  [2]=>
+  string(1) "c"
+  [3]=>
+  string(1) "d"
+}
+
+-- Iteration 7 --
+array(4) {
+  [0]=>
+  int(0)
+  [1]=>
+  int(1)
+  [2]=>
+  int(2)
+  [3]=>
+  int(3)
+}
+
+-- Iteration 8 --
+array(5) {
+  [0]=>
+  int(0)
+  [1]=>
+  int(1)
+  [2]=>
+  string(1) "a"
+  [3]=>
+  int(3)
+  [4]=>
+  int(5)
+}
+
+-- Iteration 9 --
+array(5) {
+  [0]=>
+  int(1)
+  [1]=>
+  int(0)
+  [2]=>
+  string(0) ""
+  [3]=>
+  int(2)
+  [4]=>
+  int(3)
+}
+
+-- Iteration 10 --
+array(3) {
+  [0]=>
+  string(1) "a"
+  [1]=>
+  string(2) "ab"
+  [2]=>
+  string(2) "cd"
+}
+
+-- Iteration 11 --
+array(4) {
+  [0]=>
+  int(0)
+  [1]=>
+  int(1)
+  [2]=>
+  int(2)
+  [3]=>
+  string(0) ""
+}
+
+*** Testing array_keys() on all the types other than arrays ***
+-- Loose type checking --
+array(3) {
+  [0]=>
+  int(1)
+  [1]=>
+  int(-1)
+  [2]=>
+  string(3) "php"
+}
+
+-- strict type checking --
+array(0) {
+}
+
+-- Loose type checking --
+array(4) {
+  [0]=>
+  int(0)
+  [1]=>
+  int(2)
+  [2]=>
+  int(3)
+  [3]=>
+  string(0) ""
+}
+
+-- strict type checking --
+array(0) {
+}
+
+-- Loose type checking --
+array(1) {
+  [0]=>
+  int(1)
+}
+
+-- strict type checking --
+array(0) {
+}
+
+-- Loose type checking --
+array(4) {
+  [0]=>
+  int(0)
+  [1]=>
+  int(2)
+  [2]=>
+  string(3) "php"
+  [3]=>
+  string(0) ""
+}
+
+-- strict type checking --
+array(0) {
+}
+
+-- Loose type checking --
+array(1) {
+  [0]=>
+  int(-1)
+}
+
+-- strict type checking --
+array(0) {
+}
+
+-- Loose type checking --
+array(1) {
+  [0]=>
+  int(1)
+}
+
+-- strict type checking --
+array(1) {
+  [0]=>
+  int(1)
+}
+
+-- Loose type checking --
+array(1) {
+  [0]=>
+  int(0)
+}
+
+-- strict type checking --
+array(1) {
+  [0]=>
+  int(0)
+}
+
+-- Loose type checking --
+array(1) {
+  [0]=>
+  int(-1)
+}
+
+-- strict type checking --
+array(1) {
+  [0]=>
+  int(-1)
+}
+
+-- Loose type checking --
+array(3) {
+  [0]=>
+  int(2)
+  [1]=>
+  int(3)
+  [2]=>
+  string(0) ""
+}
+
+-- strict type checking --
+array(1) {
+  [0]=>
+  int(2)
+}
+
+-- Loose type checking --
+array(2) {
+  [0]=>
+  int(2)
+  [1]=>
+  int(3)
+}
+
+-- strict type checking --
+array(1) {
+  [0]=>
+  int(3)
+}
+
+-- Loose type checking --
+array(1) {
+  [0]=>
+  string(3) "php"
+}
+
+-- strict type checking --
+array(1) {
+  [0]=>
+  string(3) "php"
+}
+
+-- Loose type checking --
+array(2) {
+  [0]=>
+  int(2)
+  [1]=>
+  string(0) ""
+}
+
+-- strict type checking --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+
+*** Testing array_keys() with resource type ***
+array(1) {
+  [0]=>
+  int(0)
+}
+array(1) {
+  [0]=>
+  int(0)
+}
+array(1) {
+  [0]=>
+  int(1)
+}
+array(1) {
+  [0]=>
+  int(1)
+}
+
+*** Testing array_keys() on range of values ***
+array(6) {
+  [0]=>
+  int(2147483647)
+  [1]=>
+  int(2147483648)
+  [2]=>
+  int(-2147483647)
+  [3]=>
+  int(-2147483648)
+  [4]=>
+  int(-2147483649)
+  [5]=>
+  int(0)
+}
+
+*** Testing array_keys() on an array created on the fly ***
+array(3) {
+  [0]=>
+  string(1) "a"
+  [1]=>
+  string(1) "b"
+  [2]=>
+  string(1) "c"
+}
+array(0) {
+}
+
+*** Testing error conditions ***
+Warning: array_keys(): The first argument should be an array in %s on line %d
+NULL
+
+Warning: array_keys(): The first argument should be an array in %s on line %d
+NULL
+
+Warning: array_keys(): The first argument should be an array in %s on line %d
+NULL
+
+Warning: Wrong parameter count for array_keys() in %s on line %d
+NULL
+
+Warning: Wrong parameter count for array_keys() in %s on line %d
+NULL
+
+Warning: Illegal offset type in %s on line %d
+array(3) {
+  [0]=>
+  int(0)
+  [1]=>
+  int(1)
+  [2]=>
+  int(2)
+}
+Done
diff --git a/ext/standard/tests/array/array_values_64bit.phpt b/ext/standard/tests/array/array_values_64bit.phpt
new file mode 100644 (file)
index 0000000..a048800
Binary files /dev/null and b/ext/standard/tests/array/array_values_64bit.phpt differ
diff --git a/ext/standard/tests/array/end_64bit.phpt b/ext/standard/tests/array/end_64bit.phpt
new file mode 100644 (file)
index 0000000..656b3e9
--- /dev/null
@@ -0,0 +1,238 @@
+--TEST--
+Test end() function
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--INI--
+precision=14
+--FILE--
+<?php
+/* Prototype: mixed end ( array &$array );
+   Description: Advances internal pointer of array to last element, and returns its value.
+*/
+
+$arrays = array (
+  array( 0 ),
+  range(1, 100 ),
+  range('a', 'z', 2 ),
+  array("a" => "A", 2 => "B", "C" => 3, 4 => 4, "one" => 1, "" => NULL ),
+  array(1, array(1, 2 => 3 ), "one" => 1, "5" => 5 ),
+  array(-1, -2, -3, -4, "-0.005" => "neg0.005", 2.0 => "float2", "neg.9" => -.9 ),
+  array(1.0005, 2.000000, -3.000000, -4.9999999 ),
+  array(true, false),
+  array("PHP", "Web2.0", "SOA"),
+  array(1, array() ),
+  array(1, 2, "" ),
+  array(" "),
+  array(2147483647, 2147483648, -2147483647, -2147483648 ),
+  array(0x7FFFFFFF, -0x80000000, 017777777777, -020000000000 ),
+  array(-.6700000E+3, -4.10003E+3, 1e-5, -1E+5, 000002.00 )
+);
+/* loop through $arrays to print the last element of each sub-array */ 
+echo "*** Testing end() on different arrays ***\n";
+$counter = 1;
+foreach ($arrays as $sub_array){
+  echo "-- Iteration $counter --\n";
+  var_dump( end($sub_array) );
+  /* ensure that internal pointer is moved to last element */
+  var_dump( current($sub_array) ); 
+  $counter++;
+}
+
+/* checking for end() on sub-arrays */
+echo "\n*** Testing end() with sub-arrays ***\n";
+$test_array = array(1, array(1 => "one", "two" => 2, "" => "f") );
+var_dump( end($test_array) );
+var_dump( end($test_array[1]) );
+
+/* checking working of end() when array elements are deleted */
+echo "\n*** Testing end() when array elements are deleted ***\n";
+$array_test = array("a", "b", "d", 7, "u" => "U", -4, "-.008" => "neg.008");
+
+// remove first element from array 
+echo "\n-- Remove first element from array --\n";
+unset($array_test[0]);
+var_dump( end($array_test) );
+
+// remove last element from array, rewind and check end() 
+echo "\n-- Remove last element from array --\n";
+unset($array_test['-.008']);
+var_dump( end($array_test) );
+reset( $array_test );
+var_dump( end($array_test) );
+
+// remove any element  !first, !last, rewind and check end() 
+echo "\n-- Remove any element from array apart from first and last element --\n";
+unset($array_test[7]);
+var_dump( end($array_test) );
+var_dump( reset($array_test) );
+var_dump( end($array_test) );
+
+/* Checking on OBJECTS type */
+echo "\n*** Testing end() on objects ***\n";
+class foo
+{
+  function __toString() {
+    return "Object";
+  }
+}
+class foo1
+{
+  function __toString() {
+    return "Object1";
+  }
+}
+
+$object1 = new foo(); //new object created
+$object2 = new foo1();
+
+$array_object = array();
+$array_object[0] = &$object1;
+$array_object[1] = &$object2;
+var_dump( end($array_object) );
+var_dump($array_object);
+
+/* Checking on RESOURCE type */
+echo "\n*** Testing end() on resource type ***\n";
+//file type resource
+$file_handle = fopen(__FILE__, "r");
+
+//directory type resource
+$dir_handle = opendir( dirname(__FILE__) );
+
+//store resources in array
+$resources = array($file_handle, $dir_handle);
+var_dump( end($resources) );
+var_dump( current($resources) );
+
+echo "\n*** Testing error conditions ***\n";
+/* checking for unexpected number of arguments */
+var_dump( end() );
+var_dump( end($array[0], $array[0]) );
+
+/* checking for unexpected type of arguments */
+$var=1;
+$var1="string";
+var_dump( end($var) );
+var_dump( end($var1) );
+
+/* checking null array */
+$null_array = array();
+var_dump( end($null_array) );
+
+echo "Done\n";
+
+?>
+
+--CLEAN--
+/* cleaning resource handles */
+fclose( $file_handle );  //file resource handle deleted
+closedir( $dir_handle );  //dir resource handle deleted
+
+--EXPECTF--
+*** Testing end() on different arrays ***
+-- Iteration 1 --
+int(0)
+int(0)
+-- Iteration 2 --
+int(100)
+int(100)
+-- Iteration 3 --
+string(1) "y"
+string(1) "y"
+-- Iteration 4 --
+NULL
+NULL
+-- Iteration 5 --
+int(5)
+int(5)
+-- Iteration 6 --
+float(-0.9)
+float(-0.9)
+-- Iteration 7 --
+float(-4.9999999)
+float(-4.9999999)
+-- Iteration 8 --
+bool(false)
+bool(false)
+-- Iteration 9 --
+string(3) "SOA"
+string(3) "SOA"
+-- Iteration 10 --
+array(0) {
+}
+array(0) {
+}
+-- Iteration 11 --
+string(0) ""
+string(0) ""
+-- Iteration 12 --
+string(1) " "
+string(1) " "
+-- Iteration 13 --
+int(-2147483648)
+int(-2147483648)
+-- Iteration 14 --
+int(-2147483648)
+int(-2147483648)
+-- Iteration 15 --
+float(2)
+float(2)
+
+*** Testing end() with sub-arrays ***
+array(3) {
+  [1]=>
+  string(3) "one"
+  ["two"]=>
+  int(2)
+  [""]=>
+  string(1) "f"
+}
+string(1) "f"
+
+*** Testing end() when array elements are deleted ***
+
+-- Remove first element from array --
+string(7) "neg.008"
+
+-- Remove last element from array --
+int(-4)
+int(-4)
+
+-- Remove any element from array apart from first and last element --
+int(-4)
+string(1) "b"
+int(-4)
+
+*** Testing end() on objects ***
+object(foo1)#2 (0) {
+}
+array(2) {
+  [0]=>
+  &object(foo)#1 (0) {
+  }
+  [1]=>
+  &object(foo1)#2 (0) {
+  }
+}
+
+*** Testing end() on resource type ***
+resource(6) of type (stream)
+resource(6) of type (stream)
+
+*** Testing error conditions ***
+
+Warning: Wrong parameter count for end() in /home/tony/php-src_5_2/ext/standard/tests/array/end_64bit.php on line 102
+NULL
+
+Warning: Wrong parameter count for end() in /home/tony/php-src_5_2/ext/standard/tests/array/end_64bit.php on line 103
+NULL
+
+Warning: end(): Passed variable is not an array or object in /home/tony/php-src_5_2/ext/standard/tests/array/end_64bit.php on line 108
+bool(false)
+
+Warning: end(): Passed variable is not an array or object in /home/tony/php-src_5_2/ext/standard/tests/array/end_64bit.php on line 109
+bool(false)
+bool(false)
+Done
diff --git a/ext/standard/tests/general_functions/debug_zval_dump_b_64bit.phpt b/ext/standard/tests/general_functions/debug_zval_dump_b_64bit.phpt
new file mode 100644 (file)
index 0000000..c951d22
Binary files /dev/null and b/ext/standard/tests/general_functions/debug_zval_dump_b_64bit.phpt differ
diff --git a/ext/standard/tests/general_functions/is_float_64bit.phpt b/ext/standard/tests/general_functions/is_float_64bit.phpt
new file mode 100644 (file)
index 0000000..3ebd925
--- /dev/null
@@ -0,0 +1,443 @@
+--TEST--
+Test is_float() & it's FALIASes: is_double() & is_real() functions
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--INI--
+precision=14
+--FILE--
+<?php
+/* Prototype: bool is_float ( mixed $var );
+ * Description: Finds whether the given variable is a float 
+ */ 
+
+echo "*** Testing is_float(), is_double() and is_real() with float values***\n";
+// different valid  float vlaues 
+$floats = array(
+  -2147483649, // float value
+  2147483648,  // float value
+  -0x80000001, // float value, beyond max negative int
+  0x800000001, // float value, beyond max positive int
+  020000000001, // float value, beyond max positive int
+  -020000000001, // float value, beyond max negative int
+  0.0,
+  -0.1,
+  10.0000000000000000005,
+  10.5e+5,
+  1e5,
+  -1e5,
+  1e-5,
+  -1e-5,
+  1e+5,
+  -1e+5,
+  1E5,
+  -1E5,
+  1E+5,
+  -1E+5,
+  1E-5,
+  -1E-5,
+  .5e+7,
+  -.5e+7,
+  .6e-19,
+  -.6e-19,
+  .05E+44,
+  -.05E+44,
+  .0034E-30,
+  -.0034E-30
+);
+/* loop to check that is_float(), is_double() & is_real() recognizes
+   different float values, expected: bool(true)  */
+$loop_counter = 1;
+foreach ($floats as $float ) {
+  echo "-- Iteration $loop_counter --\n"; $loop_counter++;
+  var_dump( is_float($float) );
+  var_dump( is_double($float) );
+  var_dump( is_real($float) );
+}
+
+echo "\n*** Testing is_float(), is_double() & is_real() with non float values ***\n";
+// get a resource type variable
+$fp = fopen (__FILE__, "r");
+$dfp = opendir ( dirname(__FILE__) );
+
+// unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// non_scalar values, objects, arrays, resources and boolean 
+class foo
+{
+  var $array = array(10.5);
+};
+$object = new foo();
+
+$not_floats = array (
+  new foo, //object
+  $object,  
+
+  $fp,  // resource
+  $dfp,
+
+  array(),  // arrays
+  array(NULL),
+  array(0.5e10),
+  array(1,2,3,4),
+  array("string"),
+
+  NULL,  // nulls
+  null,
+
+  true,  // boolean
+  TRUE,
+  false,
+  FALSE,
+  
+  "",  // strings
+  '',
+  "0",
+  '0',
+  "0.0",
+  '0.0',
+  '0.5',
+  "-0.5",
+  "1e5",
+  '1e5',
+  '1.5e6_string',
+  "1.5e6_string",
+  1,  // integers, hex and octal
+  -1,
+  0,
+  12345,
+  0xFF55,
+  -0x673,
+  0123,
+  -0123,
+   
+  @$unset_var,  // unset variable
+  @$undefined_var
+);
+/* loop through the $not_floats to see working of 
+   is_float(), is_double() & is_real() on objects,
+    arrays, boolean and others */
+$loop_counter = 1;
+foreach ($not_floats as $value ) {
+  echo "--Iteration $loop_counter--\n"; $loop_counter++;
+  var_dump( is_float($value) );
+  var_dump( is_double($value) );
+  var_dump( is_real($value) );
+}
+
+echo "\n*** Testing error conditions ***\n";
+//Zero argument
+var_dump( is_float() );
+var_dump( is_double() );
+var_dump( is_real() );
+
+//arguments more than expected 
+var_dump( is_float( $floats[0], $floats[1]) );
+var_dump( is_double( $floats[0], $floats[1]) );
+var_dump( is_real( $floats[0], $floats[1]) );
+echo "Done\n";
+?>
+
+--CLEAN--
+// close the resources used 
+fclose($fp);
+closedir($dfp);
+
+--EXPECTF--
+*** Testing is_float(), is_double() and is_real() with float values***
+-- Iteration 1 --
+bool(false)
+bool(false)
+bool(false)
+-- Iteration 2 --
+bool(false)
+bool(false)
+bool(false)
+-- Iteration 3 --
+bool(false)
+bool(false)
+bool(false)
+-- Iteration 4 --
+bool(false)
+bool(false)
+bool(false)
+-- Iteration 5 --
+bool(false)
+bool(false)
+bool(false)
+-- Iteration 6 --
+bool(false)
+bool(false)
+bool(false)
+-- Iteration 7 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 8 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 9 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 10 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 11 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 12 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 13 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 14 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 15 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 16 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 17 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 18 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 19 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 20 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 21 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 22 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 23 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 24 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 25 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 26 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 27 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 28 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 29 --
+bool(true)
+bool(true)
+bool(true)
+-- Iteration 30 --
+bool(true)
+bool(true)
+bool(true)
+
+*** Testing is_float(), is_double() & is_real() with non float values ***
+--Iteration 1--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 2--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 3--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 4--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 5--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 6--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 7--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 8--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 9--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 10--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 11--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 12--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 13--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 14--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 15--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 16--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 17--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 18--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 19--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 20--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 21--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 22--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 23--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 24--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 25--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 26--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 27--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 28--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 29--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 30--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 31--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 32--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 33--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 34--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 35--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 36--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 37--
+bool(false)
+bool(false)
+bool(false)
+
+*** Testing error conditions ***
+
+Warning: is_float(): Only one argument expected in %s on line %d
+bool(false)
+
+Warning: is_double(): Only one argument expected in %s on line %d
+bool(false)
+
+Warning: is_real(): Only one argument expected in %s on line %d
+bool(false)
+
+Warning: is_float(): Only one argument expected in %s on line %d
+bool(false)
+
+Warning: is_double(): Only one argument expected in %s on line %d
+bool(false)
+
+Warning: is_real(): Only one argument expected in %s on line %d
+bool(false)
+Done
diff --git a/ext/standard/tests/general_functions/is_int_64bit.phpt b/ext/standard/tests/general_functions/is_int_64bit.phpt
new file mode 100644 (file)
index 0000000..fc53a3d
--- /dev/null
@@ -0,0 +1,468 @@
+--TEST--
+Test is_int() & it's FALIASes: is_long() & is_integer() functions
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--INI--
+precision=14
+--FILE--
+<?php
+/* Prototype: bool is_int ( mixed $var );
+ * Description: Finds whether the given variable is an integer  
+ */
+
+echo "*** Testing is_int(), is_integer() & is_long()  with valid integer values ***\n";
+// different valid  integer vlaues 
+$valid_ints = array(
+  0,
+  1,
+  -1,
+  -2147483648, // max negative integer value
+  -2147483647, 
+  2147483647,  // max positive integer value
+  2147483640,
+  0x123B,      // integer as hexadecimal
+  0x12ab,
+  0Xfff,
+  0XFA,
+  -0x80000000, // max negative integer as hexadecimal
+  0x7fffffff,  // max postive integer as hexadecimal
+  0x7FFFFFFF,  // max postive integer as hexadecimal
+  0123,        // integer as octal
+  01912,       // should be quivalent to octal 1
+  -020000000000, // max negative integer as octal
+  017777777777,  // max positive integer as octal
+);
+/* loop to check that is_int() recognizes different 
+   integer values, expected output: bool(true) */
+$loop_counter = 1;
+foreach ($valid_ints as $int_val ) {
+   echo "--Iteration $loop_counter--\n"; $loop_counter++;   
+   var_dump( is_int($int_val) );
+   var_dump( is_integer($int_val) );
+   var_dump( is_long($int_val) );
+}
+
+echo "\n*** Testing is_int(), is_integer() & is_long() with  non integer values ***\n";
+
+// resource type variable
+$fp = fopen (__FILE__, "r");
+$dfp = opendir ( dirname(__FILE__) );
+// unset variable
+
+$unset_var = 10;
+unset ($unset_var);
+
+// other types in a array 
+$not_int_types = array (
+  /* float values */
+  -2147483649, // float value
+  2147483648,  // float value
+  -0x80000001, // float value, beyond max negative int
+  0x800000001, // float value, beyond max positive int
+  020000000001, // float value, beyond max positive int 
+  -020000000001, // float value, beyond max negative int 
+  0.0,  
+  -0.1,
+  1.0,
+  1e5,
+  -1e6,
+  1E8,
+  -1E9,
+  10.0000000000000000005,
+  10.5e+5,
+  /* objects */
+  new stdclass,
+
+  /* resources */
+  $fp,
+  $dfp,
+  
+  /* arrays */
+  array(),
+  array(0),
+  array(1),
+  array(NULL),
+  array(null),
+  array("string"),
+  array(true),
+  array(TRUE),
+  array(false),
+  array(FALSE),
+  array(1,2,3,4),
+  array(1 => "One", "two" => 2),
+  
+  /* strings */
+  "",
+  '',
+  "0",
+  '0',
+  "1",
+  '1',
+  "\x01",
+  '\x01',
+  "\01",
+  '\01',
+  'string',
+  "string",
+  "true",
+  "FALSE",
+  'false',
+  'TRUE',
+  "NULL",
+  'null',
+
+  /* booleans */
+  true,
+  false,
+  TRUE,
+  FALSE,
+
+  /* undefined and unset vars */
+  @$unset_var, 
+  @$undefined_var
+);
+/* loop through the $not_int_types to see working of 
+   is_int() on non integer types, expected output: bool(false) */
+$loop_counter = 1;
+foreach ($not_int_types as $type ) {
+   echo "--Iteration $loop_counter--\n"; $loop_counter++;   
+   var_dump( is_int($type) );
+   var_dump( is_integer($type) );
+   var_dump( is_long($type) );
+}
+
+echo "\n*** Testing error conditions ***\n";
+//Zero argument
+var_dump( is_int() );
+var_dump( is_integer() );
+var_dump( is_long() );
+
+//arguments more than expected 
+var_dump( is_int(TRUE, FALSE) );
+var_dump( is_integer(TRUE, FALSE) );
+var_dump( is_long(TRUE, FALSE) );
+echo "Done\n";
+?>
+
+--CLEAN--
+// close the resources
+fclose($fp);
+closedir($dfp);
+
+--EXPECTF--
+*** Testing is_int(), is_integer() & is_long()  with valid integer values ***
+--Iteration 1--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 2--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 3--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 4--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 5--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 6--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 7--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 8--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 9--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 10--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 11--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 12--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 13--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 14--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 15--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 16--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 17--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 18--
+bool(true)
+bool(true)
+bool(true)
+
+*** Testing is_int(), is_integer() & is_long() with  non integer values ***
+--Iteration 1--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 2--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 3--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 4--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 5--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 6--
+bool(true)
+bool(true)
+bool(true)
+--Iteration 7--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 8--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 9--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 10--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 11--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 12--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 13--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 14--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 15--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 16--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 17--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 18--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 19--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 20--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 21--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 22--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 23--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 24--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 25--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 26--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 27--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 28--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 29--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 30--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 31--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 32--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 33--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 34--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 35--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 36--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 37--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 38--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 39--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 40--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 41--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 42--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 43--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 44--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 45--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 46--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 47--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 48--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 49--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 50--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 51--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 52--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 53--
+bool(false)
+bool(false)
+bool(false)
+--Iteration 54--
+bool(false)
+bool(false)
+bool(false)
+
+*** Testing error conditions ***
+
+Warning: is_int(): Only one argument expected in %s on line %d
+bool(false)
+
+Warning: is_integer(): Only one argument expected in %s on line %d
+bool(false)
+
+Warning: is_long(): Only one argument expected in %s on line %d
+bool(false)
+
+Warning: is_int(): Only one argument expected in %s on line %d
+bool(false)
+
+Warning: is_integer(): Only one argument expected in %s on line %d
+bool(false)
+
+Warning: is_long(): Only one argument expected in %s on line %d
+bool(false)
+Done
diff --git a/ext/standard/tests/general_functions/print_r_64bit.phpt b/ext/standard/tests/general_functions/print_r_64bit.phpt
new file mode 100644 (file)
index 0000000..ba05924
--- /dev/null
@@ -0,0 +1,1740 @@
+--TEST--
+Test print_r() function
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--INI--
+precision=14
+--FILE--
+
+<?php
+/* Prototype: bool print_r ( mixed $expression [, bool $return] );
+   Description: Prints human-readable information about a variable
+*/
+
+/* Prototype: void check_printr( $variables )
+   Description: use print_r() to print variables */
+function check_printr( $variables ) {
+  $counter = 1;
+  foreach( $variables as $variable ) {
+    echo "\n-- Iteration $counter --\n";
+    //default = false, prints output to screen
+    print_r($variable);
+    //$return=TRUE, print_r() will return its output, instead of printing it
+    $ret_string = print_r($variable, true); //$ret_string captures the output
+    echo "\n$ret_string\n";
+    //$return=false, print_r() prints the output; default behavior
+    print_r($variable, false);
+    $counter++;
+  }
+}
+  
+echo "\n*** Testing print_r() on integer variables ***\n";
+$integers = array ( 
+  0,  // zero as argument
+  000000123,  //octal value of 83
+  123000000,
+  -00000123,  //octal value of 83
+  -12300000,
+  range(1,10),  // positive values
+  range(-1,-10),  // negative values
+  +2147483647,  // max positive integer
+  +2147483648,  // max positive integer + 1
+  -2147483648,  // min range of integer
+  -2147483647,  // min range of integer + 1
+  0x7FFFFFFF,  // max positive hexadecimal integer
+  -0x80000000,  // min range of hexadecimal integer
+  017777777777,  // max posotive octal integer
+  -020000000000  // min range of octal integer
+);                 
+/* calling check_printr() to display contents of integer variables
+   using print_r() */
+check_printr($integers);
+
+echo "\n*** Testing print_r() on float variables ***\n";
+$floats = array (
+  -0.0,
+  +0.0,
+  1.234,
+  -1.234,
+  -2.000000,
+  000002.00,
+  -.5,
+  .567,
+  -.6700000e-3,
+  -.6700000E+3,
+  .6700000E+3,
+  .6700000e+3,
+  -4.10003e-3,
+  -4.10003E+3,
+  4.100003e-3,
+  4.100003E+3,
+  1e5,
+  -1e5,
+  1e-5,
+  -1e-5,
+  1e+5,
+  -1e+5,
+  1E5,
+  -1E5,
+  1E+5,
+  -1E+5,
+  1E-5,
+  -1E-5,
+  -0x80000001,  // float value, beyond max negative int
+  0x80000001,  // float value, beyond max positive int
+  020000000001,  // float value, beyond max positive int
+  -020000000001  // float value, beyond max negative int 
+);
+/* calling check_printr() to display contents of float variables
+   using print_r() */
+check_printr($floats);
+
+echo "\n*** Testing print_r() on string variables ***\n";
+$strings = array (
+  "",
+  '',
+  " ",
+  ' ',
+  "0",
+  "\0",
+  '\0',
+  "\t",
+  '\t',
+  "PHP",
+  'PHP',
+  "abcd\x0n1234\x0005678\x0000efgh\xijkl",  // strings with hexadecimal NULL
+  "abcd\0efgh\0ijkl\x00mnop\x000qrst\00uvwx\0000yz",  // strings with octal NULL
+  "1234\t\n5678\n\t9100\rabcda"  // strings with escape characters
+);
+/* calling check_printr() to display contents of strings using print_r() */
+check_printr($strings);
+
+echo "\n*** Testing print_r() on boolean variables ***\n";
+$booleans = array (
+  TRUE,
+  FALSE,
+  true,
+  false
+);       
+/* calling check_printr() to display boolean variables using print_r() */
+check_printr($booleans);
+var_dump( reset($booleans) );
+echo "\n";
+var_dump( current($booleans) );
+
+echo "\n*** Testing print_r() on array variables ***\n";
+$arrays = array (
+  array(),
+  array(NULL),
+  array(null),
+  array(true),
+  array(""),
+  array(''),
+  array(array(), array()),
+  array(array(1, 2), array('a', 'b')),
+  array(1 => 'One'),
+  array("test" => "is_array"),
+  array(0),
+  array(-1),
+  array(10.5, 5.6),
+  array("string", "test"),
+  array('string', 'test'),
+);
+/* calling check_printr() to display contents of $arrays */
+check_printr($arrays);
+
+echo "\n*** Testing print_r() on object variables ***\n";
+class object_class
+{
+  var       $value;
+  public    $public_var1 = 10;
+  private   $private_var1 = 20;
+  private   $private_var2;
+  protected $protected_var1 = "string_1";
+  protected $protected_var2;
+
+  function object_class ( ) {
+    $this->value = 50;
+    $this->public_var2 = 11;
+    $this->private_var2 = 21;
+    $this->protected_var2 = "string_2";
+  }
+
+  public function foo1() {
+    echo "foo1() is called\n";
+  }
+  protected function foo2() {
+    echo "foo2() is called\n";
+  }
+  private function foo3() {
+    echo "foo3() is called\n";
+  }
+}
+/* class with no member */
+class no_member_class {
+ // no members
+}
+
+/* class with member as object of other class */
+class contains_object_class
+{
+   var       $p = 30;
+   var       $class_object1;
+   public    $class_object2;
+   private   $class_object3;
+   protected $class_object4;
+   var       $no_member_class_object;
+
+   public function func() {
+     echo "func() is called \n";
+   }
+
+   function contains_object_class () {
+     $this->class_object1 = new object_class();
+     $this->class_object2 = new object_class();
+     $this->class_object3 = $this->class_object1;
+     $this->class_object4 = $this->class_object2;
+     $this->no_member_class_object = new no_member_class();
+     $this->class_object5 = $this;   //recursive reference
+   }
+}
+
+/* objects of different classes */
+$obj = new contains_object_class;
+$temp_class_obj = new object_class();
+
+/* object which is unset */
+$unset_obj = new object_class();
+unset($unset_obj);
+
+$objects = array (
+  new object_class,
+  new no_member_class,
+  new contains_object_class,
+  $obj,
+  $obj->class_object1,
+  $obj->class_object2,
+  $obj->no_member_class_object,
+  $temp_class_obj,
+  @$unset_obj
+);
+/* calling check_printr() to display contents of the objects using print_r() */
+check_printr($objects);
+
+echo "\n** Testing print_r() on objects having circular reference **\n";
+$recursion_obj1 = new object_class();
+$recursion_obj2 = new object_class();
+$recursion_obj1->obj = &$recursion_obj2;  //circular reference
+$recursion_obj2->obj = &$recursion_obj1;  //circular reference
+print_r($recursion_obj2);
+
+echo "\n*** Testing print_r() on resources ***\n";
+/* file type resource */
+$file_handle = fopen(__FILE__, "r"); 
+
+/* directory type resource */
+$dir_handle = opendir( dirname(__FILE__) );
+
+$resources = array (
+  $file_handle,
+  $dir_handle
+);
+/* calling check_printr() to display the resource content type
+   using print_r() */
+check_printr($resources);
+
+echo "\n*** Testing print_r() on different combinations of scalar 
+            and non-scalar variables ***\n";
+/* a variable which is unset */
+$unset_var = 10.5;
+unset($unset_var);
+
+/* unset file type resource */
+unset($file_handle);
+
+$variations = array (
+  array( 123, -1.2345, "a" ),
+  array( "d", array(1, 3, 5), true, null),
+  array( new no_member_class, array(), false, 0 ),
+  array( -0.00, "Where am I?", array(7,8,9), TRUE, 'A', 987654321 ),
+  array( @$unset_var, 2.E+10, 100-20.9, 000004.599998 ),  //unusual data
+  array( "array(1,2,3,4)1.0000002TRUE", @$file_handle, 111333.00+45e5, '/00\7') 
+);
+/* calling check_printr() to display combinations of scalar and 
+   non-scalar variables using print_r() */
+check_printr($variations);
+
+echo "\n*** Testing print_r() on miscelleneous input arguments ***\n";
+$misc_values = array (
+  @$unset_var,
+  NULL,  // NULL argument
+  @$undef_variable,  //undefined variable
+  null
+);
+/* calling check_printr() to display miscelleneous data using print_r() */
+check_printr($misc_values);
+
+/* checking print_r() on functions */
+echo "\n*** Testing print_r() on anonymous functions ***\n";
+$newfunc = create_function('$a,$b', 'return "$a * $b = " . ($a * $b);');
+echo "New anonymous function: $newfunc\n";
+print_r( $newfunc(2, 3) );
+/* creating anonymous function dynamically */
+print_r( create_function('$a', 'return "$a * $a = " . ($a * $b);') );
+
+echo "\n\n*** Testing error conditions ***\n";
+//passing zero argument
+var_dump( print_r() );
+
+//passing more than required no. of arguments
+var_dump( print_r(123, true, "abc") );
+
+// check when second arg is given other than boolean TRUE
+var_dump( print_r ($value, "string") );
+
+/* closing resource handle used */
+closedir($dir_handle);
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing print_r() on integer variables ***
+
+-- Iteration 1 --
+0
+0
+0
+-- Iteration 2 --
+83
+83
+83
+-- Iteration 3 --
+123000000
+123000000
+123000000
+-- Iteration 4 --
+-83
+-83
+-83
+-- Iteration 5 --
+-12300000
+-12300000
+-12300000
+-- Iteration 6 --
+Array
+(
+    [0] => 1
+    [1] => 2
+    [2] => 3
+    [3] => 4
+    [4] => 5
+    [5] => 6
+    [6] => 7
+    [7] => 8
+    [8] => 9
+    [9] => 10
+)
+
+Array
+(
+    [0] => 1
+    [1] => 2
+    [2] => 3
+    [3] => 4
+    [4] => 5
+    [5] => 6
+    [6] => 7
+    [7] => 8
+    [8] => 9
+    [9] => 10
+)
+
+Array
+(
+    [0] => 1
+    [1] => 2
+    [2] => 3
+    [3] => 4
+    [4] => 5
+    [5] => 6
+    [6] => 7
+    [7] => 8
+    [8] => 9
+    [9] => 10
+)
+
+-- Iteration 7 --
+Array
+(
+    [0] => -1
+    [1] => -2
+    [2] => -3
+    [3] => -4
+    [4] => -5
+    [5] => -6
+    [6] => -7
+    [7] => -8
+    [8] => -9
+    [9] => -10
+)
+
+Array
+(
+    [0] => -1
+    [1] => -2
+    [2] => -3
+    [3] => -4
+    [4] => -5
+    [5] => -6
+    [6] => -7
+    [7] => -8
+    [8] => -9
+    [9] => -10
+)
+
+Array
+(
+    [0] => -1
+    [1] => -2
+    [2] => -3
+    [3] => -4
+    [4] => -5
+    [5] => -6
+    [6] => -7
+    [7] => -8
+    [8] => -9
+    [9] => -10
+)
+
+-- Iteration 8 --
+2147483647
+2147483647
+2147483647
+-- Iteration 9 --
+2147483648
+2147483648
+2147483648
+-- Iteration 10 --
+-2147483648
+-2147483648
+-2147483648
+-- Iteration 11 --
+-2147483647
+-2147483647
+-2147483647
+-- Iteration 12 --
+2147483647
+2147483647
+2147483647
+-- Iteration 13 --
+-2147483648
+-2147483648
+-2147483648
+-- Iteration 14 --
+2147483647
+2147483647
+2147483647
+-- Iteration 15 --
+-2147483648
+-2147483648
+-2147483648
+*** Testing print_r() on float variables ***
+
+-- Iteration 1 --
+0
+0
+0
+-- Iteration 2 --
+0
+0
+0
+-- Iteration 3 --
+1.234
+1.234
+1.234
+-- Iteration 4 --
+-1.234
+-1.234
+-1.234
+-- Iteration 5 --
+-2
+-2
+-2
+-- Iteration 6 --
+2
+2
+2
+-- Iteration 7 --
+-0.5
+-0.5
+-0.5
+-- Iteration 8 --
+0.567
+0.567
+0.567
+-- Iteration 9 --
+-0.00067
+-0.00067
+-0.00067
+-- Iteration 10 --
+-670
+-670
+-670
+-- Iteration 11 --
+670
+670
+670
+-- Iteration 12 --
+670
+670
+670
+-- Iteration 13 --
+-0.00410003
+-0.00410003
+-0.00410003
+-- Iteration 14 --
+-4100.03
+-4100.03
+-4100.03
+-- Iteration 15 --
+0.004100003
+0.004100003
+0.004100003
+-- Iteration 16 --
+4100.003
+4100.003
+4100.003
+-- Iteration 17 --
+100000
+100000
+100000
+-- Iteration 18 --
+-100000
+-100000
+-100000
+-- Iteration 19 --
+1.0E-5
+1.0E-5
+1.0E-5
+-- Iteration 20 --
+-1.0E-5
+-1.0E-5
+-1.0E-5
+-- Iteration 21 --
+100000
+100000
+100000
+-- Iteration 22 --
+-100000
+-100000
+-100000
+-- Iteration 23 --
+100000
+100000
+100000
+-- Iteration 24 --
+-100000
+-100000
+-100000
+-- Iteration 25 --
+100000
+100000
+100000
+-- Iteration 26 --
+-100000
+-100000
+-100000
+-- Iteration 27 --
+1.0E-5
+1.0E-5
+1.0E-5
+-- Iteration 28 --
+-1.0E-5
+-1.0E-5
+-1.0E-5
+-- Iteration 29 --
+-2147483649
+-2147483649
+-2147483649
+-- Iteration 30 --
+2147483649
+2147483649
+2147483649
+-- Iteration 31 --
+2147483649
+2147483649
+2147483649
+-- Iteration 32 --
+-2147483649
+-2147483649
+-2147483649
+*** Testing print_r() on string variables ***
+
+-- Iteration 1 --
+
+
+
+-- Iteration 2 --
+
+
+
+-- Iteration 3 --
+-- Iteration 4 --
+-- Iteration 5 --
+0
+0
+0
+-- Iteration 6 --
+\0
+\0
+\0
+-- Iteration 7 --
+\0
+\0
+\0
+-- Iteration 8 --
+       
+       
+       
+-- Iteration 9 --
+\t
+\t
+\t
+-- Iteration 10 --
+PHP
+PHP
+PHP
+-- Iteration 11 --
+PHP
+PHP
+PHP
+-- Iteration 12 --
+abcd\0n1234\005678\000efgh\xijkl
+abcd\0n1234\005678\000efgh\xijkl
+abcd\0n1234\005678\000efgh\xijkl
+-- Iteration 13 --
+abcd\0efgh\0ijkl\0mnop\00qrst\0uvwx\00yz
+abcd\0efgh\0ijkl\0mnop\00qrst\0uvwx\00yz
+abcd\0efgh\0ijkl\0mnop\00qrst\0uvwx\00yz
+-- Iteration 14 --
+1234   
+5678
+       9100
+abcda
+1234   
+5678
+       9100
+abcda
+1234   
+5678
+       9100
+abcda
+*** Testing print_r() on boolean variables ***
+
+-- Iteration 1 --
+1
+1
+1
+-- Iteration 2 --
+
+
+
+-- Iteration 3 --
+1
+1
+1
+-- Iteration 4 --
+
+
+bool(true)
+
+bool(true)
+
+*** Testing print_r() on array variables ***
+
+-- Iteration 1 --
+Array
+(
+)
+
+Array
+(
+)
+
+Array
+(
+)
+
+-- Iteration 2 --
+Array
+(
+    [0] => 
+)
+
+Array
+(
+    [0] => 
+)
+
+Array
+(
+    [0] => 
+)
+
+-- Iteration 3 --
+Array
+(
+    [0] => 
+)
+
+Array
+(
+    [0] => 
+)
+
+Array
+(
+    [0] => 
+)
+
+-- Iteration 4 --
+Array
+(
+    [0] => 1
+)
+
+Array
+(
+    [0] => 1
+)
+
+Array
+(
+    [0] => 1
+)
+
+-- Iteration 5 --
+Array
+(
+    [0] => 
+)
+
+Array
+(
+    [0] => 
+)
+
+Array
+(
+    [0] => 
+)
+
+-- Iteration 6 --
+Array
+(
+    [0] => 
+)
+
+Array
+(
+    [0] => 
+)
+
+Array
+(
+    [0] => 
+)
+
+-- Iteration 7 --
+Array
+(
+    [0] => Array
+        (
+        )
+
+    [1] => Array
+        (
+        )
+
+)
+
+Array
+(
+    [0] => Array
+        (
+        )
+
+    [1] => Array
+        (
+        )
+
+)
+
+Array
+(
+    [0] => Array
+        (
+        )
+
+    [1] => Array
+        (
+        )
+
+)
+
+-- Iteration 8 --
+Array
+(
+    [0] => Array
+        (
+            [0] => 1
+            [1] => 2
+        )
+
+    [1] => Array
+        (
+            [0] => a
+            [1] => b
+        )
+
+)
+
+Array
+(
+    [0] => Array
+        (
+            [0] => 1
+            [1] => 2
+        )
+
+    [1] => Array
+        (
+            [0] => a
+            [1] => b
+        )
+
+)
+
+Array
+(
+    [0] => Array
+        (
+            [0] => 1
+            [1] => 2
+        )
+
+    [1] => Array
+        (
+            [0] => a
+            [1] => b
+        )
+
+)
+
+-- Iteration 9 --
+Array
+(
+    [1] => One
+)
+
+Array
+(
+    [1] => One
+)
+
+Array
+(
+    [1] => One
+)
+
+-- Iteration 10 --
+Array
+(
+    [test] => is_array
+)
+
+Array
+(
+    [test] => is_array
+)
+
+Array
+(
+    [test] => is_array
+)
+
+-- Iteration 11 --
+Array
+(
+    [0] => 0
+)
+
+Array
+(
+    [0] => 0
+)
+
+Array
+(
+    [0] => 0
+)
+
+-- Iteration 12 --
+Array
+(
+    [0] => -1
+)
+
+Array
+(
+    [0] => -1
+)
+
+Array
+(
+    [0] => -1
+)
+
+-- Iteration 13 --
+Array
+(
+    [0] => 10.5
+    [1] => 5.6
+)
+
+Array
+(
+    [0] => 10.5
+    [1] => 5.6
+)
+
+Array
+(
+    [0] => 10.5
+    [1] => 5.6
+)
+
+-- Iteration 14 --
+Array
+(
+    [0] => string
+    [1] => test
+)
+
+Array
+(
+    [0] => string
+    [1] => test
+)
+
+Array
+(
+    [0] => string
+    [1] => test
+)
+
+-- Iteration 15 --
+Array
+(
+    [0] => string
+    [1] => test
+)
+
+Array
+(
+    [0] => string
+    [1] => test
+)
+
+Array
+(
+    [0] => string
+    [1] => test
+)
+
+*** Testing print_r() on object variables ***
+
+-- Iteration 1 --
+object_class Object
+(
+    [value] => 50
+    [public_var1] => 10
+    [private_var1:private] => 20
+    [private_var2:private] => 21
+    [protected_var1:protected] => string_1
+    [protected_var2:protected] => string_2
+    [public_var2] => 11
+)
+
+object_class Object
+(
+    [value] => 50
+    [public_var1] => 10
+    [private_var1:private] => 20
+    [private_var2:private] => 21
+    [protected_var1:protected] => string_1
+    [protected_var2:protected] => string_2
+    [public_var2] => 11
+)
+
+object_class Object
+(
+    [value] => 50
+    [public_var1] => 10
+    [private_var1:private] => 20
+    [private_var2:private] => 21
+    [protected_var1:protected] => string_1
+    [protected_var2:protected] => string_2
+    [public_var2] => 11
+)
+
+-- Iteration 2 --
+no_member_class Object
+(
+)
+
+no_member_class Object
+(
+)
+
+no_member_class Object
+(
+)
+
+-- Iteration 3 --
+contains_object_class Object
+(
+    [p] => 30
+    [class_object1] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object2] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object3:private] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object4:protected] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [no_member_class_object] => no_member_class Object
+        (
+        )
+
+    [class_object5] => contains_object_class Object
+ *RECURSION*
+)
+
+contains_object_class Object
+(
+    [p] => 30
+    [class_object1] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object2] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object3:private] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object4:protected] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [no_member_class_object] => no_member_class Object
+        (
+        )
+
+    [class_object5] => contains_object_class Object
+ *RECURSION*
+)
+
+contains_object_class Object
+(
+    [p] => 30
+    [class_object1] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object2] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object3:private] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object4:protected] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [no_member_class_object] => no_member_class Object
+        (
+        )
+
+    [class_object5] => contains_object_class Object
+ *RECURSION*
+)
+
+-- Iteration 4 --
+contains_object_class Object
+(
+    [p] => 30
+    [class_object1] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object2] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object3:private] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object4:protected] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [no_member_class_object] => no_member_class Object
+        (
+        )
+
+    [class_object5] => contains_object_class Object
+ *RECURSION*
+)
+
+contains_object_class Object
+(
+    [p] => 30
+    [class_object1] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object2] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object3:private] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object4:protected] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [no_member_class_object] => no_member_class Object
+        (
+        )
+
+    [class_object5] => contains_object_class Object
+ *RECURSION*
+)
+
+contains_object_class Object
+(
+    [p] => 30
+    [class_object1] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object2] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object3:private] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [class_object4:protected] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+        )
+
+    [no_member_class_object] => no_member_class Object
+        (
+        )
+
+    [class_object5] => contains_object_class Object
+ *RECURSION*
+)
+
+-- Iteration 5 --
+object_class Object
+(
+    [value] => 50
+    [public_var1] => 10
+    [private_var1:private] => 20
+    [private_var2:private] => 21
+    [protected_var1:protected] => string_1
+    [protected_var2:protected] => string_2
+    [public_var2] => 11
+)
+
+object_class Object
+(
+    [value] => 50
+    [public_var1] => 10
+    [private_var1:private] => 20
+    [private_var2:private] => 21
+    [protected_var1:protected] => string_1
+    [protected_var2:protected] => string_2
+    [public_var2] => 11
+)
+
+object_class Object
+(
+    [value] => 50
+    [public_var1] => 10
+    [private_var1:private] => 20
+    [private_var2:private] => 21
+    [protected_var1:protected] => string_1
+    [protected_var2:protected] => string_2
+    [public_var2] => 11
+)
+
+-- Iteration 6 --
+object_class Object
+(
+    [value] => 50
+    [public_var1] => 10
+    [private_var1:private] => 20
+    [private_var2:private] => 21
+    [protected_var1:protected] => string_1
+    [protected_var2:protected] => string_2
+    [public_var2] => 11
+)
+
+object_class Object
+(
+    [value] => 50
+    [public_var1] => 10
+    [private_var1:private] => 20
+    [private_var2:private] => 21
+    [protected_var1:protected] => string_1
+    [protected_var2:protected] => string_2
+    [public_var2] => 11
+)
+
+object_class Object
+(
+    [value] => 50
+    [public_var1] => 10
+    [private_var1:private] => 20
+    [private_var2:private] => 21
+    [protected_var1:protected] => string_1
+    [protected_var2:protected] => string_2
+    [public_var2] => 11
+)
+
+-- Iteration 7 --
+no_member_class Object
+(
+)
+
+no_member_class Object
+(
+)
+
+no_member_class Object
+(
+)
+
+-- Iteration 8 --
+object_class Object
+(
+    [value] => 50
+    [public_var1] => 10
+    [private_var1:private] => 20
+    [private_var2:private] => 21
+    [protected_var1:protected] => string_1
+    [protected_var2:protected] => string_2
+    [public_var2] => 11
+)
+
+object_class Object
+(
+    [value] => 50
+    [public_var1] => 10
+    [private_var1:private] => 20
+    [private_var2:private] => 21
+    [protected_var1:protected] => string_1
+    [protected_var2:protected] => string_2
+    [public_var2] => 11
+)
+
+object_class Object
+(
+    [value] => 50
+    [public_var1] => 10
+    [private_var1:private] => 20
+    [private_var2:private] => 21
+    [protected_var1:protected] => string_1
+    [protected_var2:protected] => string_2
+    [public_var2] => 11
+)
+
+-- Iteration 9 --
+
+
+
+** Testing print_r() on objects having circular reference **
+object_class Object
+(
+    [value] => 50
+    [public_var1] => 10
+    [private_var1:private] => 20
+    [private_var2:private] => 21
+    [protected_var1:protected] => string_1
+    [protected_var2:protected] => string_2
+    [public_var2] => 11
+    [obj] => object_class Object
+        (
+            [value] => 50
+            [public_var1] => 10
+            [private_var1:private] => 20
+            [private_var2:private] => 21
+            [protected_var1:protected] => string_1
+            [protected_var2:protected] => string_2
+            [public_var2] => 11
+            [obj] => object_class Object
+ *RECURSION*
+        )
+
+)
+
+*** Testing print_r() on resources ***
+
+-- Iteration 1 --
+Resource id #5
+Resource id #5
+Resource id #5
+-- Iteration 2 --
+Resource id #6
+Resource id #6
+Resource id #6
+*** Testing print_r() on different combinations of scalar 
+            and non-scalar variables ***
+
+-- Iteration 1 --
+Array
+(
+    [0] => 123
+    [1] => -1.2345
+    [2] => a
+)
+
+Array
+(
+    [0] => 123
+    [1] => -1.2345
+    [2] => a
+)
+
+Array
+(
+    [0] => 123
+    [1] => -1.2345
+    [2] => a
+)
+
+-- Iteration 2 --
+Array
+(
+    [0] => d
+    [1] => Array
+        (
+            [0] => 1
+            [1] => 3
+            [2] => 5
+        )
+
+    [2] => 1
+    [3] => 
+)
+
+Array
+(
+    [0] => d
+    [1] => Array
+        (
+            [0] => 1
+            [1] => 3
+            [2] => 5
+        )
+
+    [2] => 1
+    [3] => 
+)
+
+Array
+(
+    [0] => d
+    [1] => Array
+        (
+            [0] => 1
+            [1] => 3
+            [2] => 5
+        )
+
+    [2] => 1
+    [3] => 
+)
+
+-- Iteration 3 --
+Array
+(
+    [0] => no_member_class Object
+        (
+        )
+
+    [1] => Array
+        (
+        )
+
+    [2] => 
+    [3] => 0
+)
+
+Array
+(
+    [0] => no_member_class Object
+        (
+        )
+
+    [1] => Array
+        (
+        )
+
+    [2] => 
+    [3] => 0
+)
+
+Array
+(
+    [0] => no_member_class Object
+        (
+        )
+
+    [1] => Array
+        (
+        )
+
+    [2] => 
+    [3] => 0
+)
+
+-- Iteration 4 --
+Array
+(
+    [0] => 0
+    [1] => Where am I?
+    [2] => Array
+        (
+            [0] => 7
+            [1] => 8
+            [2] => 9
+        )
+
+    [3] => 1
+    [4] => A
+    [5] => 987654321
+)
+
+Array
+(
+    [0] => 0
+    [1] => Where am I?
+    [2] => Array
+        (
+            [0] => 7
+            [1] => 8
+            [2] => 9
+        )
+
+    [3] => 1
+    [4] => A
+    [5] => 987654321
+)
+
+Array
+(
+    [0] => 0
+    [1] => Where am I?
+    [2] => Array
+        (
+            [0] => 7
+            [1] => 8
+            [2] => 9
+        )
+
+    [3] => 1
+    [4] => A
+    [5] => 987654321
+)
+
+-- Iteration 5 --
+Array
+(
+    [0] => 
+    [1] => 20000000000
+    [2] => 79.1
+    [3] => 4.599998
+)
+
+Array
+(
+    [0] => 
+    [1] => 20000000000
+    [2] => 79.1
+    [3] => 4.599998
+)
+
+Array
+(
+    [0] => 
+    [1] => 20000000000
+    [2] => 79.1
+    [3] => 4.599998
+)
+
+-- Iteration 6 --
+Array
+(
+    [0] => array(1,2,3,4)1.0000002TRUE
+    [1] => 
+    [2] => 4611333
+    [3] => /00\7
+)
+
+Array
+(
+    [0] => array(1,2,3,4)1.0000002TRUE
+    [1] => 
+    [2] => 4611333
+    [3] => /00\7
+)
+
+Array
+(
+    [0] => array(1,2,3,4)1.0000002TRUE
+    [1] => 
+    [2] => 4611333
+    [3] => /00\7
+)
+
+*** Testing print_r() on miscelleneous input arguments ***
+
+-- Iteration 1 --
+
+
+
+-- Iteration 2 --
+
+
+
+-- Iteration 3 --
+
+
+
+-- Iteration 4 --
+
+
+
+*** Testing print_r() on anonymous functions ***
+New anonymous function: \0lambda_1
+2 * 3 = 6\0lambda_2
+
+*** Testing error conditions ***
+
+Warning: print_r() expects at least 1 parameter, 0 given in %s on line %d
+bool(false)
+
+Warning: print_r() expects at most 2 parameters, 3 given in %s on line %d
+bool(false)
+
+Notice: Undefined variable: value in %s on line %d
+string(0) ""
+Done
diff --git a/ext/standard/tests/general_functions/var_dump_64bit.phpt b/ext/standard/tests/general_functions/var_dump_64bit.phpt
new file mode 100644 (file)
index 0000000..0a72d31
--- /dev/null
@@ -0,0 +1,1913 @@
+--TEST--
+Test var_dump() function
+--SKIPIF--
+<?php
+if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
+?>
+--INI--
+precision=14
+--FILE--
+<?php
+/* Prototype: void var_dump ( mixed $expression [, mixed $expression [, $...]] );
+   Description: Displays structured information about one or more expressions that includes its type and value.
+*/
+
+/* Prototype: void check_vardump( $variables );
+   Description: use var_dump() to display the variables */
+function check_vardump( $variables ) {
+  $counter = 1;
+  foreach( $variables as $variable ) {
+    echo "-- Iteration $counter --\n";
+    var_dump($variable);
+    $counter++;
+  }
+}
+  
+echo "\n*** Testing var_dump() on integer variables ***\n";
+$integers = array ( 
+  0,  // zero as argument
+  000000123,  //octal value of 83
+  123000000,
+  -00000123,  //octal value of 83
+  -12300000,
+  range(1,10),  // positive values
+  range(-1,-10),  // negative values
+  +2147483647,  // max positive integer
+  +2147483648,  // max positive integer + 1
+  -2147483648,  // min range of integer
+  -2147483647,  // min range of integer + 1
+  0x7FFFFFFF,  // max positive hexadecimal integer
+  -0x80000000,  // min range of hexadecimal integer
+  017777777777,  // max posotive octal integer
+  -020000000000  // min range of octal integer
+);                 
+/* calling check_vardump() to display contents of integer variables 
+   using var_dump() */
+check_vardump($integers);
+
+echo "\n*** Testing var_dump() on float variables ***\n";
+$floats = array (
+  -0.0,
+  +0.0,
+  1.234,
+  -1.234,
+  -2.000000,
+  000002.00,
+  -.5,
+  .567,
+  -.6700000e-3,
+  -.6700000E+3,
+  .6700000E+3,
+  .6700000e+3,
+  -4.10003e-3,
+  -4.10003E+3,
+  4.100003e-3,
+  4.100003E+3,
+  1e5,
+  -1e5,
+  1e-5,
+  -1e-5,
+  1e+5,
+  -1e+5,
+  1E5,
+  -1E5,
+  1E+5,
+  -1E+5,
+  1E-5,
+  -1E-5,
+  -0x80000001,  // float value, beyond max negative int
+  0x80000001,  // float value, beyond max positive int
+  020000000001,  // float value, beyond max positive int
+  -020000000001  // float value, beyond max negative int 
+);
+/* calling check_vardump() to display contents of float variables 
+   using var_dump() */
+check_vardump($floats);
+
+echo "\n*** Testing var_dump() on string variables ***\n";
+$strings = array (
+  "",
+  '',
+  " ",
+  ' ',
+  "0",
+  "\0",
+  '\0',
+  "\t",
+  '\t',
+  "PHP",
+  'PHP',
+  "abcd\x0n1234\x0005678\x0000efgh\xijkl",  // strings with hexadecimal NULL
+  "abcd\0efgh\0ijkl\x00mnop\x000qrst\00uvwx\0000yz",  // strings with octal NULL
+  "1234\t\n5678\n\t9100\rabcda"  // strings with escape characters
+);
+/* calling check_vardump() to display contents of strings 
+   using var_dump() */
+check_vardump($strings);
+
+echo "\n*** Testing var_dump() on boolean variables ***\n";
+$booleans = array (
+  TRUE,
+  FALSE,
+  true,
+  false
+);       
+/* calling check_vardump() to display boolean variables
+   using var_dump() */
+check_vardump($booleans);
+
+echo "\n*** Testing var_dump() on array variables ***\n";
+$arrays = array (
+  array(),
+  array(NULL),
+  array(null),
+  array(true),
+  array(""),
+  array(''),
+  array(array(), array()),
+  array(array(1, 2), array('a', 'b')),
+  array(1 => 'One'),
+  array("test" => "is_array"),
+  array(0),
+  array(-1),
+  array(10.5, 5.6),
+  array("string", "test"),
+  array('string', 'test'),
+);
+/* calling check_vardump() to display contents of an array
+   using var_dump() */
+check_vardump($arrays);
+
+echo "\n*** Testing var_dump() on object variables ***\n";
+class object_class
+{
+  var       $value;
+  public    $public_var1 = 10;
+  private   $private_var1 = 20;
+  private   $private_var2;
+  protected $protected_var1 = "string_1";
+  protected $protected_var2;
+
+  function object_class ( ) {
+    $this->value = 50;
+    $this->public_var2 = 11;
+    $this->private_var2 = 21;
+    $this->protected_var2 = "string_2";
+  }
+
+  public function foo1() {
+    echo "foo1() is called\n";
+  }
+  protected function foo2() {
+    echo "foo2() is called\n";
+  }
+  private function foo3() {
+    echo "foo3() is called\n";
+  }
+}
+/* class with no member */
+class no_member_class {
+ // no members
+}
+
+/* class with member as object of other class */
+class contains_object_class
+{
+   var       $p = 30;
+   var       $class_object1;
+   public    $class_object2;
+   private   $class_object3;
+   protected $class_object4;
+   var       $no_member_class_object;
+
+   public function func() {
+     echo "func() is called \n";
+   }
+
+   function contains_object_class () {
+     $this->class_object1 = new object_class();
+     $this->class_object2 = new object_class();
+     $this->class_object3 = $this->class_object1;
+     $this->class_object4 = $this->class_object2;
+     $this->no_member_class_object = new no_member_class();
+     $this->class_object5 = $this;   //recursive reference
+   }
+}
+
+/* objects of different classes */
+$obj = new contains_object_class;
+$temp_class_obj = new object_class();
+
+/* object which is unset */
+$unset_obj = new object_class();
+unset($unset_obj);
+
+$objects = array (
+  new object_class,
+  new no_member_class,
+  new contains_object_class,
+  $obj,
+  $obj->class_object1,
+  $obj->class_object2,
+  $obj->no_member_class_object,
+  $temp_class_obj,
+  @$unset_obj
+);
+/* calling check_vardump() to display contents of the objects
+   using var_dump() */
+check_vardump($objects);
+
+echo "\n** Testing var_dump() on objects having circular reference **\n";
+$recursion_obj1 = new object_class();
+$recursion_obj2 = new object_class();
+$recursion_obj1->obj = &$recursion_obj2;  //circular reference
+$recursion_obj2->obj = &$recursion_obj1;  //circular reference
+var_dump($recursion_obj2);
+
+echo "\n*** Testing var_dump() on resources ***\n";
+/* file type resource */
+$file_handle = fopen(__FILE__, "r"); 
+
+/* directory type resource */
+$dir_handle = opendir( dirname(__FILE__) );
+
+$resources = array (
+  $file_handle,
+  $dir_handle
+);
+/* calling check_vardump() to display the resource content type
+   using var_dump() */
+check_vardump($resources);
+
+echo "\n*** Testing var_dump() on different combinations of scalar 
+            and non-scalar variables ***\n";
+/* a variable which is unset */
+$unset_var = 10.5;
+unset($unset_var);
+
+/* unset file type resource */
+unset($file_handle);
+
+$variations = array (
+  array( 123, -1.2345, "a" ),
+  array( "d", array(1, 3, 5), true, null),
+  array( new no_member_class, array(), false, 0 ),
+  array( -0.00, "Where am I?", array(7,8,9), TRUE, 'A', 987654321 ),
+  array( @$unset_var, 2.E+10, 100-20.9, 000004.599998 ),  //unusual data
+  array( "array(1,2,3,4)1.0000002TRUE", @$file_handle, 111333.00+45e5, '/00\7') 
+);
+/* calling check_vardump() to display combinations of scalar and
+   non-scalar variables using var_dump() */
+check_vardump($variations);
+
+echo "\n*** Testing var_dump() on miscelleneous input arguments ***\n";
+$misc_values = array (
+  @$unset_var,
+  NULL,  // NULL argument
+  @$undef_variable,  //undefined variable
+  null
+);
+/* calling check_vardump() to display miscelleneous data using var_dump() */
+check_vardump($misc_values);
+
+echo "\n*** Testing var_dump() on multiple arguments ***\n";
+var_dump( $integers, $floats, $strings, $arrays, $booleans, $resources, 
+          $objects, $misc_values, $variations );
+
+/* checking var_dump() on functions */
+echo "\n*** Testing var_dump() on anonymous functions ***\n";
+$newfunc = create_function('$a,$b', 'return "$a * $b = " . ($a * $b);');
+echo "New anonymous function: $newfunc\n";
+var_dump( $newfunc(2, 3) );
+/* creating anonymous function dynamically */
+var_dump( create_function('$a', 'return "$a * $a = " . ($a * $b);') );
+
+echo "\n*** Testing error conditions ***\n";
+//passing zero argument
+var_dump();
+
+/* closing resource handle used */
+closedir($dir_handle); 
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing var_dump() on integer variables ***
+-- Iteration 1 --
+int(0)
+-- Iteration 2 --
+int(83)
+-- Iteration 3 --
+int(123000000)
+-- Iteration 4 --
+int(-83)
+-- Iteration 5 --
+int(-12300000)
+-- Iteration 6 --
+array(10) {
+  [0]=>
+  int(1)
+  [1]=>
+  int(2)
+  [2]=>
+  int(3)
+  [3]=>
+  int(4)
+  [4]=>
+  int(5)
+  [5]=>
+  int(6)
+  [6]=>
+  int(7)
+  [7]=>
+  int(8)
+  [8]=>
+  int(9)
+  [9]=>
+  int(10)
+}
+-- Iteration 7 --
+array(10) {
+  [0]=>
+  int(-1)
+  [1]=>
+  int(-2)
+  [2]=>
+  int(-3)
+  [3]=>
+  int(-4)
+  [4]=>
+  int(-5)
+  [5]=>
+  int(-6)
+  [6]=>
+  int(-7)
+  [7]=>
+  int(-8)
+  [8]=>
+  int(-9)
+  [9]=>
+  int(-10)
+}
+-- Iteration 8 --
+int(2147483647)
+-- Iteration 9 --
+int(2147483648)
+-- Iteration 10 --
+int(-2147483648)
+-- Iteration 11 --
+int(-2147483647)
+-- Iteration 12 --
+int(2147483647)
+-- Iteration 13 --
+int(-2147483648)
+-- Iteration 14 --
+int(2147483647)
+-- Iteration 15 --
+int(-2147483648)
+
+*** Testing var_dump() on float variables ***
+-- Iteration 1 --
+float(0)
+-- Iteration 2 --
+float(0)
+-- Iteration 3 --
+float(1.234)
+-- Iteration 4 --
+float(-1.234)
+-- Iteration 5 --
+float(-2)
+-- Iteration 6 --
+float(2)
+-- Iteration 7 --
+float(-0.5)
+-- Iteration 8 --
+float(0.567)
+-- Iteration 9 --
+float(-0.00067)
+-- Iteration 10 --
+float(-670)
+-- Iteration 11 --
+float(670)
+-- Iteration 12 --
+float(670)
+-- Iteration 13 --
+float(-0.00410003)
+-- Iteration 14 --
+float(-4100.03)
+-- Iteration 15 --
+float(0.004100003)
+-- Iteration 16 --
+float(4100.003)
+-- Iteration 17 --
+float(100000)
+-- Iteration 18 --
+float(-100000)
+-- Iteration 19 --
+float(1.0E-5)
+-- Iteration 20 --
+float(-1.0E-5)
+-- Iteration 21 --
+float(100000)
+-- Iteration 22 --
+float(-100000)
+-- Iteration 23 --
+float(100000)
+-- Iteration 24 --
+float(-100000)
+-- Iteration 25 --
+float(100000)
+-- Iteration 26 --
+float(-100000)
+-- Iteration 27 --
+float(1.0E-5)
+-- Iteration 28 --
+float(-1.0E-5)
+-- Iteration 29 --
+int(-2147483649)
+-- Iteration 30 --
+int(2147483649)
+-- Iteration 31 --
+int(2147483649)
+-- Iteration 32 --
+int(-2147483649)
+
+*** Testing var_dump() on string variables ***
+-- Iteration 1 --
+string(0) ""
+-- Iteration 2 --
+string(0) ""
+-- Iteration 3 --
+string(1) " "
+-- Iteration 4 --
+string(1) " "
+-- Iteration 5 --
+string(1) "0"
+-- Iteration 6 --
+string(1) "\0"
+-- Iteration 7 --
+string(2) "\0"
+-- Iteration 8 --
+string(1) "    "
+-- Iteration 9 --
+string(2) "\t"
+-- Iteration 10 --
+string(3) "PHP"
+-- Iteration 11 --
+string(3) "PHP"
+-- Iteration 12 --
+string(29) "abcd\0n1234\005678\000efgh\xijkl"
+-- Iteration 13 --
+string(34) "abcd\0efgh\0ijkl\0mnop\00qrst\0uvwx\00yz"
+-- Iteration 14 --
+string(22) "1234       
+5678
+       9100
+abcda"
+
+*** Testing var_dump() on boolean variables ***
+-- Iteration 1 --
+bool(true)
+-- Iteration 2 --
+bool(false)
+-- Iteration 3 --
+bool(true)
+-- Iteration 4 --
+bool(false)
+
+*** Testing var_dump() on array variables ***
+-- Iteration 1 --
+array(0) {
+}
+-- Iteration 2 --
+array(1) {
+  [0]=>
+  NULL
+}
+-- Iteration 3 --
+array(1) {
+  [0]=>
+  NULL
+}
+-- Iteration 4 --
+array(1) {
+  [0]=>
+  bool(true)
+}
+-- Iteration 5 --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+-- Iteration 6 --
+array(1) {
+  [0]=>
+  string(0) ""
+}
+-- Iteration 7 --
+array(2) {
+  [0]=>
+  array(0) {
+  }
+  [1]=>
+  array(0) {
+  }
+}
+-- Iteration 8 --
+array(2) {
+  [0]=>
+  array(2) {
+    [0]=>
+    int(1)
+    [1]=>
+    int(2)
+  }
+  [1]=>
+  array(2) {
+    [0]=>
+    string(1) "a"
+    [1]=>
+    string(1) "b"
+  }
+}
+-- Iteration 9 --
+array(1) {
+  [1]=>
+  string(3) "One"
+}
+-- Iteration 10 --
+array(1) {
+  ["test"]=>
+  string(8) "is_array"
+}
+-- Iteration 11 --
+array(1) {
+  [0]=>
+  int(0)
+}
+-- Iteration 12 --
+array(1) {
+  [0]=>
+  int(-1)
+}
+-- Iteration 13 --
+array(2) {
+  [0]=>
+  float(10.5)
+  [1]=>
+  float(5.6)
+}
+-- Iteration 14 --
+array(2) {
+  [0]=>
+  string(6) "string"
+  [1]=>
+  string(4) "test"
+}
+-- Iteration 15 --
+array(2) {
+  [0]=>
+  string(6) "string"
+  [1]=>
+  string(4) "test"
+}
+
+*** Testing var_dump() on object variables ***
+-- Iteration 1 --
+object(object_class)#6 (7) {
+  ["value"]=>
+  int(50)
+  ["public_var1"]=>
+  int(10)
+  ["private_var1:private"]=>
+  int(20)
+  ["private_var2:private"]=>
+  int(21)
+  ["protected_var1:protected"]=>
+  string(8) "string_1"
+  ["protected_var2:protected"]=>
+  string(8) "string_2"
+  ["public_var2"]=>
+  int(11)
+}
+-- Iteration 2 --
+object(no_member_class)#7 (0) {
+}
+-- Iteration 3 --
+object(contains_object_class)#8 (7) {
+  ["p"]=>
+  int(30)
+  ["class_object1"]=>
+  object(object_class)#9 (7) {
+    ["value"]=>
+    int(50)
+    ["public_var1"]=>
+    int(10)
+    ["private_var1:private"]=>
+    int(20)
+    ["private_var2:private"]=>
+    int(21)
+    ["protected_var1:protected"]=>
+    string(8) "string_1"
+    ["protected_var2:protected"]=>
+    string(8) "string_2"
+    ["public_var2"]=>
+    int(11)
+  }
+  ["class_object2"]=>
+  object(object_class)#10 (7) {
+    ["value"]=>
+    int(50)
+    ["public_var1"]=>
+    int(10)
+    ["private_var1:private"]=>
+    int(20)
+    ["private_var2:private"]=>
+    int(21)
+    ["protected_var1:protected"]=>
+    string(8) "string_1"
+    ["protected_var2:protected"]=>
+    string(8) "string_2"
+    ["public_var2"]=>
+    int(11)
+  }
+  ["class_object3:private"]=>
+  object(object_class)#9 (7) {
+    ["value"]=>
+    int(50)
+    ["public_var1"]=>
+    int(10)
+    ["private_var1:private"]=>
+    int(20)
+    ["private_var2:private"]=>
+    int(21)
+    ["protected_var1:protected"]=>
+    string(8) "string_1"
+    ["protected_var2:protected"]=>
+    string(8) "string_2"
+    ["public_var2"]=>
+    int(11)
+  }
+  ["class_object4:protected"]=>
+  object(object_class)#10 (7) {
+    ["value"]=>
+    int(50)
+    ["public_var1"]=>
+    int(10)
+    ["private_var1:private"]=>
+    int(20)
+    ["private_var2:private"]=>
+    int(21)
+    ["protected_var1:protected"]=>
+    string(8) "string_1"
+    ["protected_var2:protected"]=>
+    string(8) "string_2"
+    ["public_var2"]=>
+    int(11)
+  }
+  ["no_member_class_object"]=>
+  object(no_member_class)#11 (0) {
+  }
+  ["class_object5"]=>
+  object(contains_object_class)#8 (7) {
+    ["p"]=>
+    int(30)
+    ["class_object1"]=>
+    object(object_class)#9 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["class_object2"]=>
+    object(object_class)#10 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["class_object3:private"]=>
+    object(object_class)#9 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["class_object4:protected"]=>
+    object(object_class)#10 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["no_member_class_object"]=>
+    object(no_member_class)#11 (0) {
+    }
+    ["class_object5"]=>
+    *RECURSION*
+  }
+}
+-- Iteration 4 --
+object(contains_object_class)#1 (7) {
+  ["p"]=>
+  int(30)
+  ["class_object1"]=>
+  object(object_class)#2 (7) {
+    ["value"]=>
+    int(50)
+    ["public_var1"]=>
+    int(10)
+    ["private_var1:private"]=>
+    int(20)
+    ["private_var2:private"]=>
+    int(21)
+    ["protected_var1:protected"]=>
+    string(8) "string_1"
+    ["protected_var2:protected"]=>
+    string(8) "string_2"
+    ["public_var2"]=>
+    int(11)
+  }
+  ["class_object2"]=>
+  object(object_class)#3 (7) {
+    ["value"]=>
+    int(50)
+    ["public_var1"]=>
+    int(10)
+    ["private_var1:private"]=>
+    int(20)
+    ["private_var2:private"]=>
+    int(21)
+    ["protected_var1:protected"]=>
+    string(8) "string_1"
+    ["protected_var2:protected"]=>
+    string(8) "string_2"
+    ["public_var2"]=>
+    int(11)
+  }
+  ["class_object3:private"]=>
+  object(object_class)#2 (7) {
+    ["value"]=>
+    int(50)
+    ["public_var1"]=>
+    int(10)
+    ["private_var1:private"]=>
+    int(20)
+    ["private_var2:private"]=>
+    int(21)
+    ["protected_var1:protected"]=>
+    string(8) "string_1"
+    ["protected_var2:protected"]=>
+    string(8) "string_2"
+    ["public_var2"]=>
+    int(11)
+  }
+  ["class_object4:protected"]=>
+  object(object_class)#3 (7) {
+    ["value"]=>
+    int(50)
+    ["public_var1"]=>
+    int(10)
+    ["private_var1:private"]=>
+    int(20)
+    ["private_var2:private"]=>
+    int(21)
+    ["protected_var1:protected"]=>
+    string(8) "string_1"
+    ["protected_var2:protected"]=>
+    string(8) "string_2"
+    ["public_var2"]=>
+    int(11)
+  }
+  ["no_member_class_object"]=>
+  object(no_member_class)#4 (0) {
+  }
+  ["class_object5"]=>
+  object(contains_object_class)#1 (7) {
+    ["p"]=>
+    int(30)
+    ["class_object1"]=>
+    object(object_class)#2 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["class_object2"]=>
+    object(object_class)#3 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["class_object3:private"]=>
+    object(object_class)#2 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["class_object4:protected"]=>
+    object(object_class)#3 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["no_member_class_object"]=>
+    object(no_member_class)#4 (0) {
+    }
+    ["class_object5"]=>
+    *RECURSION*
+  }
+}
+-- Iteration 5 --
+object(object_class)#2 (7) {
+  ["value"]=>
+  int(50)
+  ["public_var1"]=>
+  int(10)
+  ["private_var1:private"]=>
+  int(20)
+  ["private_var2:private"]=>
+  int(21)
+  ["protected_var1:protected"]=>
+  string(8) "string_1"
+  ["protected_var2:protected"]=>
+  string(8) "string_2"
+  ["public_var2"]=>
+  int(11)
+}
+-- Iteration 6 --
+object(object_class)#3 (7) {
+  ["value"]=>
+  int(50)
+  ["public_var1"]=>
+  int(10)
+  ["private_var1:private"]=>
+  int(20)
+  ["private_var2:private"]=>
+  int(21)
+  ["protected_var1:protected"]=>
+  string(8) "string_1"
+  ["protected_var2:protected"]=>
+  string(8) "string_2"
+  ["public_var2"]=>
+  int(11)
+}
+-- Iteration 7 --
+object(no_member_class)#4 (0) {
+}
+-- Iteration 8 --
+object(object_class)#5 (7) {
+  ["value"]=>
+  int(50)
+  ["public_var1"]=>
+  int(10)
+  ["private_var1:private"]=>
+  int(20)
+  ["private_var2:private"]=>
+  int(21)
+  ["protected_var1:protected"]=>
+  string(8) "string_1"
+  ["protected_var2:protected"]=>
+  string(8) "string_2"
+  ["public_var2"]=>
+  int(11)
+}
+-- Iteration 9 --
+NULL
+
+** Testing var_dump() on objects having circular reference **
+object(object_class)#13 (8) {
+  ["value"]=>
+  int(50)
+  ["public_var1"]=>
+  int(10)
+  ["private_var1:private"]=>
+  int(20)
+  ["private_var2:private"]=>
+  int(21)
+  ["protected_var1:protected"]=>
+  string(8) "string_1"
+  ["protected_var2:protected"]=>
+  string(8) "string_2"
+  ["public_var2"]=>
+  int(11)
+  ["obj"]=>
+  &object(object_class)#12 (8) {
+    ["value"]=>
+    int(50)
+    ["public_var1"]=>
+    int(10)
+    ["private_var1:private"]=>
+    int(20)
+    ["private_var2:private"]=>
+    int(21)
+    ["protected_var1:protected"]=>
+    string(8) "string_1"
+    ["protected_var2:protected"]=>
+    string(8) "string_2"
+    ["public_var2"]=>
+    int(11)
+    ["obj"]=>
+    &object(object_class)#13 (8) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+      ["obj"]=>
+      &object(object_class)#12 (8) {
+        ["value"]=>
+        int(50)
+        ["public_var1"]=>
+        int(10)
+        ["private_var1:private"]=>
+        int(20)
+        ["private_var2:private"]=>
+        int(21)
+        ["protected_var1:protected"]=>
+        string(8) "string_1"
+        ["protected_var2:protected"]=>
+        string(8) "string_2"
+        ["public_var2"]=>
+        int(11)
+        ["obj"]=>
+        *RECURSION*
+      }
+    }
+  }
+}
+
+*** Testing var_dump() on resources ***
+-- Iteration 1 --
+resource(5) of type (stream)
+-- Iteration 2 --
+resource(6) of type (stream)
+
+*** Testing var_dump() on different combinations of scalar 
+            and non-scalar variables ***
+-- Iteration 1 --
+array(3) {
+  [0]=>
+  int(123)
+  [1]=>
+  float(-1.2345)
+  [2]=>
+  string(1) "a"
+}
+-- Iteration 2 --
+array(4) {
+  [0]=>
+  string(1) "d"
+  [1]=>
+  array(3) {
+    [0]=>
+    int(1)
+    [1]=>
+    int(3)
+    [2]=>
+    int(5)
+  }
+  [2]=>
+  bool(true)
+  [3]=>
+  NULL
+}
+-- Iteration 3 --
+array(4) {
+  [0]=>
+  object(no_member_class)#14 (0) {
+  }
+  [1]=>
+  array(0) {
+  }
+  [2]=>
+  bool(false)
+  [3]=>
+  int(0)
+}
+-- Iteration 4 --
+array(6) {
+  [0]=>
+  float(0)
+  [1]=>
+  string(11) "Where am I?"
+  [2]=>
+  array(3) {
+    [0]=>
+    int(7)
+    [1]=>
+    int(8)
+    [2]=>
+    int(9)
+  }
+  [3]=>
+  bool(true)
+  [4]=>
+  string(1) "A"
+  [5]=>
+  int(987654321)
+}
+-- Iteration 5 --
+array(4) {
+  [0]=>
+  NULL
+  [1]=>
+  float(20000000000)
+  [2]=>
+  float(79.1)
+  [3]=>
+  float(4.599998)
+}
+-- Iteration 6 --
+array(4) {
+  [0]=>
+  string(27) "array(1,2,3,4)1.0000002TRUE"
+  [1]=>
+  NULL
+  [2]=>
+  float(4611333)
+  [3]=>
+  string(5) "/00\7"
+}
+
+*** Testing var_dump() on miscelleneous input arguments ***
+-- Iteration 1 --
+NULL
+-- Iteration 2 --
+NULL
+-- Iteration 3 --
+NULL
+-- Iteration 4 --
+NULL
+
+*** Testing var_dump() on multiple arguments ***
+array(15) {
+  [0]=>
+  int(0)
+  [1]=>
+  int(83)
+  [2]=>
+  int(123000000)
+  [3]=>
+  int(-83)
+  [4]=>
+  int(-12300000)
+  [5]=>
+  array(10) {
+    [0]=>
+    int(1)
+    [1]=>
+    int(2)
+    [2]=>
+    int(3)
+    [3]=>
+    int(4)
+    [4]=>
+    int(5)
+    [5]=>
+    int(6)
+    [6]=>
+    int(7)
+    [7]=>
+    int(8)
+    [8]=>
+    int(9)
+    [9]=>
+    int(10)
+  }
+  [6]=>
+  array(10) {
+    [0]=>
+    int(-1)
+    [1]=>
+    int(-2)
+    [2]=>
+    int(-3)
+    [3]=>
+    int(-4)
+    [4]=>
+    int(-5)
+    [5]=>
+    int(-6)
+    [6]=>
+    int(-7)
+    [7]=>
+    int(-8)
+    [8]=>
+    int(-9)
+    [9]=>
+    int(-10)
+  }
+  [7]=>
+  int(2147483647)
+  [8]=>
+  int(2147483648)
+  [9]=>
+  int(-2147483648)
+  [10]=>
+  int(-2147483647)
+  [11]=>
+  int(2147483647)
+  [12]=>
+  int(-2147483648)
+  [13]=>
+  int(2147483647)
+  [14]=>
+  int(-2147483648)
+}
+array(32) {
+  [0]=>
+  float(0)
+  [1]=>
+  float(0)
+  [2]=>
+  float(1.234)
+  [3]=>
+  float(-1.234)
+  [4]=>
+  float(-2)
+  [5]=>
+  float(2)
+  [6]=>
+  float(-0.5)
+  [7]=>
+  float(0.567)
+  [8]=>
+  float(-0.00067)
+  [9]=>
+  float(-670)
+  [10]=>
+  float(670)
+  [11]=>
+  float(670)
+  [12]=>
+  float(-0.00410003)
+  [13]=>
+  float(-4100.03)
+  [14]=>
+  float(0.004100003)
+  [15]=>
+  float(4100.003)
+  [16]=>
+  float(100000)
+  [17]=>
+  float(-100000)
+  [18]=>
+  float(1.0E-5)
+  [19]=>
+  float(-1.0E-5)
+  [20]=>
+  float(100000)
+  [21]=>
+  float(-100000)
+  [22]=>
+  float(100000)
+  [23]=>
+  float(-100000)
+  [24]=>
+  float(100000)
+  [25]=>
+  float(-100000)
+  [26]=>
+  float(1.0E-5)
+  [27]=>
+  float(-1.0E-5)
+  [28]=>
+  int(-2147483649)
+  [29]=>
+  int(2147483649)
+  [30]=>
+  int(2147483649)
+  [31]=>
+  int(-2147483649)
+}
+array(14) {
+  [0]=>
+  string(0) ""
+  [1]=>
+  string(0) ""
+  [2]=>
+  string(1) " "
+  [3]=>
+  string(1) " "
+  [4]=>
+  string(1) "0"
+  [5]=>
+  string(1) "\0"
+  [6]=>
+  string(2) "\0"
+  [7]=>
+  string(1) "  "
+  [8]=>
+  string(2) "\t"
+  [9]=>
+  string(3) "PHP"
+  [10]=>
+  string(3) "PHP"
+  [11]=>
+  string(29) "abcd\0n1234\005678\000efgh\xijkl"
+  [12]=>
+  string(34) "abcd\0efgh\0ijkl\0mnop\00qrst\0uvwx\00yz"
+  [13]=>
+  string(22) "1234     
+5678
+       9100
+abcda"
+}
+array(15) {
+  [0]=>
+  array(0) {
+  }
+  [1]=>
+  array(1) {
+    [0]=>
+    NULL
+  }
+  [2]=>
+  array(1) {
+    [0]=>
+    NULL
+  }
+  [3]=>
+  array(1) {
+    [0]=>
+    bool(true)
+  }
+  [4]=>
+  array(1) {
+    [0]=>
+    string(0) ""
+  }
+  [5]=>
+  array(1) {
+    [0]=>
+    string(0) ""
+  }
+  [6]=>
+  array(2) {
+    [0]=>
+    array(0) {
+    }
+    [1]=>
+    array(0) {
+    }
+  }
+  [7]=>
+  array(2) {
+    [0]=>
+    array(2) {
+      [0]=>
+      int(1)
+      [1]=>
+      int(2)
+    }
+    [1]=>
+    array(2) {
+      [0]=>
+      string(1) "a"
+      [1]=>
+      string(1) "b"
+    }
+  }
+  [8]=>
+  array(1) {
+    [1]=>
+    string(3) "One"
+  }
+  [9]=>
+  array(1) {
+    ["test"]=>
+    string(8) "is_array"
+  }
+  [10]=>
+  array(1) {
+    [0]=>
+    int(0)
+  }
+  [11]=>
+  array(1) {
+    [0]=>
+    int(-1)
+  }
+  [12]=>
+  array(2) {
+    [0]=>
+    float(10.5)
+    [1]=>
+    float(5.6)
+  }
+  [13]=>
+  array(2) {
+    [0]=>
+    string(6) "string"
+    [1]=>
+    string(4) "test"
+  }
+  [14]=>
+  array(2) {
+    [0]=>
+    string(6) "string"
+    [1]=>
+    string(4) "test"
+  }
+}
+array(4) {
+  [0]=>
+  bool(true)
+  [1]=>
+  bool(false)
+  [2]=>
+  bool(true)
+  [3]=>
+  bool(false)
+}
+array(2) {
+  [0]=>
+  resource(5) of type (stream)
+  [1]=>
+  resource(6) of type (stream)
+}
+array(9) {
+  [0]=>
+  object(object_class)#6 (7) {
+    ["value"]=>
+    int(50)
+    ["public_var1"]=>
+    int(10)
+    ["private_var1:private"]=>
+    int(20)
+    ["private_var2:private"]=>
+    int(21)
+    ["protected_var1:protected"]=>
+    string(8) "string_1"
+    ["protected_var2:protected"]=>
+    string(8) "string_2"
+    ["public_var2"]=>
+    int(11)
+  }
+  [1]=>
+  object(no_member_class)#7 (0) {
+  }
+  [2]=>
+  object(contains_object_class)#8 (7) {
+    ["p"]=>
+    int(30)
+    ["class_object1"]=>
+    object(object_class)#9 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["class_object2"]=>
+    object(object_class)#10 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["class_object3:private"]=>
+    object(object_class)#9 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["class_object4:protected"]=>
+    object(object_class)#10 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["no_member_class_object"]=>
+    object(no_member_class)#11 (0) {
+    }
+    ["class_object5"]=>
+    object(contains_object_class)#8 (7) {
+      ["p"]=>
+      int(30)
+      ["class_object1"]=>
+      object(object_class)#9 (7) {
+        ["value"]=>
+        int(50)
+        ["public_var1"]=>
+        int(10)
+        ["private_var1:private"]=>
+        int(20)
+        ["private_var2:private"]=>
+        int(21)
+        ["protected_var1:protected"]=>
+        string(8) "string_1"
+        ["protected_var2:protected"]=>
+        string(8) "string_2"
+        ["public_var2"]=>
+        int(11)
+      }
+      ["class_object2"]=>
+      object(object_class)#10 (7) {
+        ["value"]=>
+        int(50)
+        ["public_var1"]=>
+        int(10)
+        ["private_var1:private"]=>
+        int(20)
+        ["private_var2:private"]=>
+        int(21)
+        ["protected_var1:protected"]=>
+        string(8) "string_1"
+        ["protected_var2:protected"]=>
+        string(8) "string_2"
+        ["public_var2"]=>
+        int(11)
+      }
+      ["class_object3:private"]=>
+      object(object_class)#9 (7) {
+        ["value"]=>
+        int(50)
+        ["public_var1"]=>
+        int(10)
+        ["private_var1:private"]=>
+        int(20)
+        ["private_var2:private"]=>
+        int(21)
+        ["protected_var1:protected"]=>
+        string(8) "string_1"
+        ["protected_var2:protected"]=>
+        string(8) "string_2"
+        ["public_var2"]=>
+        int(11)
+      }
+      ["class_object4:protected"]=>
+      object(object_class)#10 (7) {
+        ["value"]=>
+        int(50)
+        ["public_var1"]=>
+        int(10)
+        ["private_var1:private"]=>
+        int(20)
+        ["private_var2:private"]=>
+        int(21)
+        ["protected_var1:protected"]=>
+        string(8) "string_1"
+        ["protected_var2:protected"]=>
+        string(8) "string_2"
+        ["public_var2"]=>
+        int(11)
+      }
+      ["no_member_class_object"]=>
+      object(no_member_class)#11 (0) {
+      }
+      ["class_object5"]=>
+      *RECURSION*
+    }
+  }
+  [3]=>
+  object(contains_object_class)#1 (7) {
+    ["p"]=>
+    int(30)
+    ["class_object1"]=>
+    object(object_class)#2 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["class_object2"]=>
+    object(object_class)#3 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["class_object3:private"]=>
+    object(object_class)#2 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["class_object4:protected"]=>
+    object(object_class)#3 (7) {
+      ["value"]=>
+      int(50)
+      ["public_var1"]=>
+      int(10)
+      ["private_var1:private"]=>
+      int(20)
+      ["private_var2:private"]=>
+      int(21)
+      ["protected_var1:protected"]=>
+      string(8) "string_1"
+      ["protected_var2:protected"]=>
+      string(8) "string_2"
+      ["public_var2"]=>
+      int(11)
+    }
+    ["no_member_class_object"]=>
+    object(no_member_class)#4 (0) {
+    }
+    ["class_object5"]=>
+    object(contains_object_class)#1 (7) {
+      ["p"]=>
+      int(30)
+      ["class_object1"]=>
+      object(object_class)#2 (7) {
+        ["value"]=>
+        int(50)
+        ["public_var1"]=>
+        int(10)
+        ["private_var1:private"]=>
+        int(20)
+        ["private_var2:private"]=>
+        int(21)
+        ["protected_var1:protected"]=>
+        string(8) "string_1"
+        ["protected_var2:protected"]=>
+        string(8) "string_2"
+        ["public_var2"]=>
+        int(11)
+      }
+      ["class_object2"]=>
+      object(object_class)#3 (7) {
+        ["value"]=>
+        int(50)
+        ["public_var1"]=>
+        int(10)
+        ["private_var1:private"]=>
+        int(20)
+        ["private_var2:private"]=>
+        int(21)
+        ["protected_var1:protected"]=>
+        string(8) "string_1"
+        ["protected_var2:protected"]=>
+        string(8) "string_2"
+        ["public_var2"]=>
+        int(11)
+      }
+      ["class_object3:private"]=>
+      object(object_class)#2 (7) {
+        ["value"]=>
+        int(50)
+        ["public_var1"]=>
+        int(10)
+        ["private_var1:private"]=>
+        int(20)
+        ["private_var2:private"]=>
+        int(21)
+        ["protected_var1:protected"]=>
+        string(8) "string_1"
+        ["protected_var2:protected"]=>
+        string(8) "string_2"
+        ["public_var2"]=>
+        int(11)
+      }
+      ["class_object4:protected"]=>
+      object(object_class)#3 (7) {
+        ["value"]=>
+        int(50)
+        ["public_var1"]=>
+        int(10)
+        ["private_var1:private"]=>
+        int(20)
+        ["private_var2:private"]=>
+        int(21)
+        ["protected_var1:protected"]=>
+        string(8) "string_1"
+        ["protected_var2:protected"]=>
+        string(8) "string_2"
+        ["public_var2"]=>
+        int(11)
+      }
+      ["no_member_class_object"]=>
+      object(no_member_class)#4 (0) {
+      }
+      ["class_object5"]=>
+      *RECURSION*
+    }
+  }
+  [4]=>
+  object(object_class)#2 (7) {
+    ["value"]=>
+    int(50)
+    ["public_var1"]=>
+    int(10)
+    ["private_var1:private"]=>
+    int(20)
+    ["private_var2:private"]=>
+    int(21)
+    ["protected_var1:protected"]=>
+    string(8) "string_1"
+    ["protected_var2:protected"]=>
+    string(8) "string_2"
+    ["public_var2"]=>
+    int(11)
+  }
+  [5]=>
+  object(object_class)#3 (7) {
+    ["value"]=>
+    int(50)
+    ["public_var1"]=>
+    int(10)
+    ["private_var1:private"]=>
+    int(20)
+    ["private_var2:private"]=>
+    int(21)
+    ["protected_var1:protected"]=>
+    string(8) "string_1"
+    ["protected_var2:protected"]=>
+    string(8) "string_2"
+    ["public_var2"]=>
+    int(11)
+  }
+  [6]=>
+  object(no_member_class)#4 (0) {
+  }
+  [7]=>
+  object(object_class)#5 (7) {
+    ["value"]=>
+    int(50)
+    ["public_var1"]=>
+    int(10)
+    ["private_var1:private"]=>
+    int(20)
+    ["private_var2:private"]=>
+    int(21)
+    ["protected_var1:protected"]=>
+    string(8) "string_1"
+    ["protected_var2:protected"]=>
+    string(8) "string_2"
+    ["public_var2"]=>
+    int(11)
+  }
+  [8]=>
+  NULL
+}
+array(4) {
+  [0]=>
+  NULL
+  [1]=>
+  NULL
+  [2]=>
+  NULL
+  [3]=>
+  NULL
+}
+array(6) {
+  [0]=>
+  array(3) {
+    [0]=>
+    int(123)
+    [1]=>
+    float(-1.2345)
+    [2]=>
+    string(1) "a"
+  }
+  [1]=>
+  array(4) {
+    [0]=>
+    string(1) "d"
+    [1]=>
+    array(3) {
+      [0]=>
+      int(1)
+      [1]=>
+      int(3)
+      [2]=>
+      int(5)
+    }
+    [2]=>
+    bool(true)
+    [3]=>
+    NULL
+  }
+  [2]=>
+  array(4) {
+    [0]=>
+    object(no_member_class)#14 (0) {
+    }
+    [1]=>
+    array(0) {
+    }
+    [2]=>
+    bool(false)
+    [3]=>
+    int(0)
+  }
+  [3]=>
+  array(6) {
+    [0]=>
+    float(0)
+    [1]=>
+    string(11) "Where am I?"
+    [2]=>
+    array(3) {
+      [0]=>
+      int(7)
+      [1]=>
+      int(8)
+      [2]=>
+      int(9)
+    }
+    [3]=>
+    bool(true)
+    [4]=>
+    string(1) "A"
+    [5]=>
+    int(987654321)
+  }
+  [4]=>
+  array(4) {
+    [0]=>
+    NULL
+    [1]=>
+    float(20000000000)
+    [2]=>
+    float(79.1)
+    [3]=>
+    float(4.599998)
+  }
+  [5]=>
+  array(4) {
+    [0]=>
+    string(27) "array(1,2,3,4)1.0000002TRUE"
+    [1]=>
+    NULL
+    [2]=>
+    float(4611333)
+    [3]=>
+    string(5) "/00\7"
+  }
+}
+
+*** Testing var_dump() on anonymous functions ***
+New anonymous function: \0lambda_1
+string(9) "2 * 3 = 6"
+string(9) "\0lambda_2"
+
+*** Testing error conditions ***
+
+Warning: Wrong parameter count for var_dump() in %s on line %d
+Done