array_sum_variation7.phpt 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. --TEST--
  2. Test array_sum() function : usage variations - 'input' array with unexpected values as array element
  3. --FILE--
  4. <?php
  5. /* Prototype : mixed array_sum(array $input)
  6. * Description: Returns the sum of the array entries
  7. * Source code: ext/standard/array.c
  8. */
  9. /*
  10. * Testing array_sum() with array having other than numeric entries
  11. * strings, bool, null, subarrays & objects
  12. */
  13. echo "*** Testing array_sum() : array with unexpected entries ***\n";
  14. // empty array
  15. $input = array();
  16. echo "-- empty array --\n";
  17. var_dump( array_sum($input) );
  18. // string array
  19. $input = array('Apple', 'Banana', 'Carrot', 'Mango', 'Orange');
  20. echo "-- array with string values --\n";
  21. var_dump( array_sum($input) );
  22. // bool array
  23. $input = array( true, true, false, true, false);
  24. echo "-- array with bool values --\n";
  25. var_dump( array_sum($input) );
  26. // array with null entry
  27. $input = array(null, NULL);
  28. echo "-- array with null values --\n";
  29. var_dump( array_sum($input) );
  30. // array with subarray
  31. $input = array(
  32. array(1, 2),
  33. array(),
  34. array(0)
  35. );
  36. echo "-- array with subarrays --\n";
  37. var_dump( array_sum($input) );
  38. class MyClass
  39. {
  40. public $value;
  41. public function __construct($value)
  42. {
  43. $this->value = $value;
  44. }
  45. }
  46. // array of objects
  47. $input = array(
  48. new MyClass(2),
  49. new MyClass(5),
  50. new MyClass(10),
  51. new MyClass(0)
  52. );
  53. echo "-- array with object values --\n";
  54. var_dump( array_sum($input) );
  55. // Mixed values
  56. $input = array( 5, -8, 7.2, -1.2, "10", "apple", 'Mango', true, false, null, NULL, array( array(1,2), array(0), array()));
  57. echo "-- array with mixed values --\n";
  58. var_dump( array_sum($input) );
  59. echo "Done"
  60. ?>
  61. --EXPECTF--
  62. *** Testing array_sum() : array with unexpected entries ***
  63. -- empty array --
  64. int(0)
  65. -- array with string values --
  66. int(0)
  67. -- array with bool values --
  68. int(3)
  69. -- array with null values --
  70. int(0)
  71. -- array with subarrays --
  72. int(0)
  73. -- array with object values --
  74. int(0)
  75. -- array with mixed values --
  76. float(14)
  77. Done