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