Return to count_variation2.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test count() function : usage variations - Pass different data types as $mode arg 3: --FILE-- 4: <?php 5: /* Prototype : int count(mixed $var [, int $mode]) 6: * Description: Count the number of elements in a variable (usually an array) 7: * Source code: ext/standard/array.c 8: */ 9: 10: /* 11: * Pass different data types as $mode argument to count() to test behaviour 12: */ 13: 14: echo "*** Testing count() : usage variations ***\n"; 15: 16: // Initialise function arguments not being substituted 17: $var = array(1, 2, array ('one', 'two')); 18: 19: //get an unset variable 20: $unset_var = 10; 21: unset ($unset_var); 22: 23: // get a class 24: class classA 25: { 26: public function __toString() { 27: return "Class A object"; 28: } 29: } 30: 31: // heredoc string 32: $heredoc = <<<EOT 33: hello world 34: EOT; 35: 36: // get a resource variable 37: $fp = fopen(__FILE__, "r"); 38: 39: // unexpected values to be passed to $mode argument 40: $inputs = array( 41: 42: // int data 43: /*1*/ 0, 44: 1, 45: 12345, 46: -2345, 47: 48: // float data 49: /*5*/ 10.5, 50: -10.5, 51: 12.3456789000e10, 52: 12.3456789000E-10, 53: .5, 54: 55: // null data 56: /*10*/ NULL, 57: null, 58: 59: // boolean data 60: /*12*/ true, 61: false, 62: TRUE, 63: FALSE, 64: 65: // empty data 66: /*16*/ "", 67: '', 68: 69: // string data 70: /*18*/ "string", 71: 'string', 72: $heredoc, 73: 74: // object data 75: /*21*/ new classA(), 76: 77: // undefined data 78: /*22*/ @$undefined_var, 79: 80: // unset data 81: /*23*/ @$unset_var, 82: 83: // resource variable 84: /*24*/ $fp 85: ); 86: 87: // loop through each element of $inputs to check the behavior of count() 88: $iterator = 1; 89: foreach($inputs as $input) { 90: echo "\n-- Iteration $iterator --\n"; 91: var_dump( count($var, $input) ); 92: $iterator++; 93: }; 94: 95: fclose($fp); 96: 97: echo "Done"; 98: ?> 99: --EXPECTF-- 100: *** Testing count() : usage variations *** 101: 102: -- Iteration 1 -- 103: int(3) 104: 105: -- Iteration 2 -- 106: int(5) 107: 108: -- Iteration 3 -- 109: int(3) 110: 111: -- Iteration 4 -- 112: int(3) 113: 114: -- Iteration 5 -- 115: int(3) 116: 117: -- Iteration 6 -- 118: int(3) 119: 120: -- Iteration 7 -- 121: int(3) 122: 123: -- Iteration 8 -- 124: int(3) 125: 126: -- Iteration 9 -- 127: int(3) 128: 129: -- Iteration 10 -- 130: int(3) 131: 132: -- Iteration 11 -- 133: int(3) 134: 135: -- Iteration 12 -- 136: int(5) 137: 138: -- Iteration 13 -- 139: int(3) 140: 141: -- Iteration 14 -- 142: int(5) 143: 144: -- Iteration 15 -- 145: int(3) 146: 147: -- Iteration 16 -- 148: 149: Warning: count() expects parameter 2 to be long, string given in %s on line %d 150: NULL 151: 152: -- Iteration 17 -- 153: 154: Warning: count() expects parameter 2 to be long, string given in %s on line %d 155: NULL 156: 157: -- Iteration 18 -- 158: 159: Warning: count() expects parameter 2 to be long, string given in %s on line %d 160: NULL 161: 162: -- Iteration 19 -- 163: 164: Warning: count() expects parameter 2 to be long, string given in %s on line %d 165: NULL 166: 167: -- Iteration 20 -- 168: 169: Warning: count() expects parameter 2 to be long, string given in %s on line %d 170: NULL 171: 172: -- Iteration 21 -- 173: 174: Warning: count() expects parameter 2 to be long, object given in %s on line %d 175: NULL 176: 177: -- Iteration 22 -- 178: int(3) 179: 180: -- Iteration 23 -- 181: int(3) 182: 183: -- Iteration 24 -- 184: 185: Warning: count() expects parameter 2 to be long, resource given in %s on line %d 186: NULL 187: Done