Annotation of embedaddon/php/ext/standard/tests/general_functions/strval.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test strval() function
! 3: --INI--
! 4: precision=14
! 5: --FILE--
! 6: <?php
! 7: /* Prototype: string strval ( mixed $var );
! 8: * Description: Returns the string value of var
! 9: */
! 10:
! 11: echo "*** Testing str_val() with scalar values***\n";
! 12: $heredoc_string = <<<EOD
! 13: This is a multiline heredoc
! 14: string. Numeric = 1232455.
! 15: EOD;
! 16: /* heredoc string with only numeric values */
! 17: $heredoc_numeric_string = <<<EOD
! 18: 12345
! 19: 2345
! 20: EOD;
! 21: /* null heredoc string */
! 22: $heredoc_empty_string = <<<EOD
! 23: EOD;
! 24: /* heredoc string with NULL */
! 25: $heredoc_NULL_string = <<<EOD
! 26: NULL
! 27: EOD;
! 28:
! 29: // different valid scalar vlaues
! 30: $scalars = array(
! 31: /* integers */
! 32: 0,
! 33: 1,
! 34: -1,
! 35: -2147483648, // max negative integer value
! 36: -2147483647,
! 37: 2147483647, // max positive integer value
! 38: 2147483640,
! 39: 0x123B, // integer as hexadecimal
! 40: 0x12ab,
! 41: 0Xfff,
! 42: 0XFA,
! 43:
! 44: /* floats */
! 45: -0x80000000, // max negative integer as hexadecimal
! 46: 0x7fffffff, // max postive integer as hexadecimal
! 47: 0x7FFFFFFF, // max postive integer as hexadecimal
! 48: 0123, // integer as octal
! 49: 01912, // should be quivalent to octal 1
! 50: -020000000000, // max negative integer as octal
! 51: 017777777777, // max positive integer as octal
! 52: -2147483649, // float value
! 53: 2147483648, // float value
! 54: -0x80000001, // float value, beyond max negative int
! 55: 0x800000001, // float value, beyond max positive int
! 56: 020000000001, // float value, beyond max positive int
! 57: -020000000001, // float value, beyond max negative int
! 58: 0.0,
! 59: -0.1,
! 60: 10.0000000000000000005,
! 61: 10.5e+5,
! 62: 1e-5,
! 63: .5e+7,
! 64: .6e-19,
! 65: .05E+44,
! 66: .0034E-30,
! 67:
! 68: /* booleans */
! 69: true,
! 70: TRUE,
! 71: FALSE,
! 72: false,
! 73:
! 74: /* strings */
! 75: "",
! 76: '',
! 77: " ",
! 78: ' ',
! 79: '0',
! 80: "0",
! 81: "testing",
! 82: "0x564",
! 83: "0123",
! 84: "new\n",
! 85: 'new\n',
! 86: "@#$$%^&&*()",
! 87: " ",
! 88: "null",
! 89: 'null',
! 90: 'true',
! 91: "true",
! 92: /*"\0123",
! 93: "\0x12FF",*/
! 94: $heredoc_string,
! 95: $heredoc_numeric_string,
! 96: $heredoc_empty_string
! 97: );
! 98: /* loop to check that strval() recognizes different
! 99: scalar values and retuns the string conversion of same */
! 100: $loop_counter = 1;
! 101: foreach ($scalars as $scalar ) {
! 102: echo "-- Iteration $loop_counter --\n"; $loop_counter++;
! 103: var_dump( strval($scalar) );
! 104: }
! 105:
! 106: echo "\n*** Testing strval() with non_scalar values ***\n";
! 107: // get a resource type variable
! 108: $fp = fopen(__FILE__, "r");
! 109: $dfp = opendir( dirname(__FILE__) );
! 110:
! 111: // unset variable
! 112: $unset_var = 10;
! 113: unset ($unset_var);
! 114:
! 115: // non_scalar values, objects, arrays, resources and boolean
! 116: class foo
! 117: {
! 118: function __toString() {
! 119: return "Object";
! 120: }
! 121: }
! 122:
! 123: $not_scalars = array (
! 124: new foo, //object
! 125: $fp, // resource
! 126: $dfp,
! 127: array(), // arrays
! 128: array(NULL),
! 129: array(1,2,3,4),
! 130: array("string"),
! 131: NULL, // nulls
! 132: null,
! 133: @$unset_var, // unset variable
! 134: @$undefined_var
! 135: );
! 136: /* loop through the $not_scalars to see working of
! 137: strval() on objects, arrays, boolean and others */
! 138: $loop_counter = 1;
! 139: foreach ($not_scalars as $value ) {
! 140: echo "-- Iteration $loop_counter --\n"; $loop_counter++;
! 141: var_dump( strval($value) );
! 142: }
! 143:
! 144: echo "\n*** Testing error conditions ***\n";
! 145: //Zero argument
! 146: var_dump( strval() );
! 147:
! 148: //arguments more than expected
! 149: var_dump( strval( $scalars[0], $scalars[1]) );
! 150:
! 151: echo "Done\n";
! 152:
! 153: // close the resources used
! 154: fclose($fp);
! 155: closedir($dfp);
! 156:
! 157: ?>
! 158: --EXPECTF--
! 159: *** Testing str_val() with scalar values***
! 160: -- Iteration 1 --
! 161: string(1) "0"
! 162: -- Iteration 2 --
! 163: string(1) "1"
! 164: -- Iteration 3 --
! 165: string(2) "-1"
! 166: -- Iteration 4 --
! 167: string(11) "-2147483648"
! 168: -- Iteration 5 --
! 169: string(11) "-2147483647"
! 170: -- Iteration 6 --
! 171: string(10) "2147483647"
! 172: -- Iteration 7 --
! 173: string(10) "2147483640"
! 174: -- Iteration 8 --
! 175: string(4) "4667"
! 176: -- Iteration 9 --
! 177: string(4) "4779"
! 178: -- Iteration 10 --
! 179: string(4) "4095"
! 180: -- Iteration 11 --
! 181: string(3) "250"
! 182: -- Iteration 12 --
! 183: string(11) "-2147483648"
! 184: -- Iteration 13 --
! 185: string(10) "2147483647"
! 186: -- Iteration 14 --
! 187: string(10) "2147483647"
! 188: -- Iteration 15 --
! 189: string(2) "83"
! 190: -- Iteration 16 --
! 191: string(1) "1"
! 192: -- Iteration 17 --
! 193: string(11) "-2147483648"
! 194: -- Iteration 18 --
! 195: string(10) "2147483647"
! 196: -- Iteration 19 --
! 197: string(11) "-2147483649"
! 198: -- Iteration 20 --
! 199: string(10) "2147483648"
! 200: -- Iteration 21 --
! 201: string(11) "-2147483649"
! 202: -- Iteration 22 --
! 203: string(11) "34359738369"
! 204: -- Iteration 23 --
! 205: string(10) "2147483649"
! 206: -- Iteration 24 --
! 207: string(11) "-2147483649"
! 208: -- Iteration 25 --
! 209: string(1) "0"
! 210: -- Iteration 26 --
! 211: string(4) "-0.1"
! 212: -- Iteration 27 --
! 213: string(2) "10"
! 214: -- Iteration 28 --
! 215: string(7) "1050000"
! 216: -- Iteration 29 --
! 217: string(6) "1.0E-5"
! 218: -- Iteration 30 --
! 219: string(7) "5000000"
! 220: -- Iteration 31 --
! 221: string(7) "6.0E-20"
! 222: -- Iteration 32 --
! 223: string(7) "5.0E+42"
! 224: -- Iteration 33 --
! 225: string(7) "3.4E-33"
! 226: -- Iteration 34 --
! 227: string(1) "1"
! 228: -- Iteration 35 --
! 229: string(1) "1"
! 230: -- Iteration 36 --
! 231: string(0) ""
! 232: -- Iteration 37 --
! 233: string(0) ""
! 234: -- Iteration 38 --
! 235: string(0) ""
! 236: -- Iteration 39 --
! 237: string(0) ""
! 238: -- Iteration 40 --
! 239: string(1) " "
! 240: -- Iteration 41 --
! 241: string(1) " "
! 242: -- Iteration 42 --
! 243: string(1) "0"
! 244: -- Iteration 43 --
! 245: string(1) "0"
! 246: -- Iteration 44 --
! 247: string(7) "testing"
! 248: -- Iteration 45 --
! 249: string(5) "0x564"
! 250: -- Iteration 46 --
! 251: string(4) "0123"
! 252: -- Iteration 47 --
! 253: string(4) "new
! 254: "
! 255: -- Iteration 48 --
! 256: string(5) "new\n"
! 257: -- Iteration 49 --
! 258: string(11) "@#$$%^&&*()"
! 259: -- Iteration 50 --
! 260: string(8) " "
! 261: -- Iteration 51 --
! 262: string(4) "null"
! 263: -- Iteration 52 --
! 264: string(4) "null"
! 265: -- Iteration 53 --
! 266: string(4) "true"
! 267: -- Iteration 54 --
! 268: string(4) "true"
! 269: -- Iteration 55 --
! 270: string(5%d) "This is a multiline heredoc
! 271: string. Numeric = 1232455."
! 272: -- Iteration 56 --
! 273: string(1%d) "12345
! 274: 2345"
! 275: -- Iteration 57 --
! 276: string(0) ""
! 277:
! 278: *** Testing strval() with non_scalar values ***
! 279: -- Iteration 1 --
! 280: string(6) "Object"
! 281: -- Iteration 2 --
! 282: string(14) "Resource id #5"
! 283: -- Iteration 3 --
! 284: string(14) "Resource id #6"
! 285: -- Iteration 4 --
! 286: string(5) "Array"
! 287: -- Iteration 5 --
! 288: string(5) "Array"
! 289: -- Iteration 6 --
! 290: string(5) "Array"
! 291: -- Iteration 7 --
! 292: string(5) "Array"
! 293: -- Iteration 8 --
! 294: string(0) ""
! 295: -- Iteration 9 --
! 296: string(0) ""
! 297: -- Iteration 10 --
! 298: string(0) ""
! 299: -- Iteration 11 --
! 300: string(0) ""
! 301:
! 302: *** Testing error conditions ***
! 303:
! 304: Warning: strval() expects exactly 1 parameter, 0 given in %s on line %d
! 305: NULL
! 306:
! 307: Warning: strval() expects exactly 1 parameter, 2 given in %s on line %d
! 308: NULL
! 309: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>