Annotation of embedaddon/php/ext/standard/tests/general_functions/is_scalar.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test is_scalar() function
                      3: --FILE--
                      4: <?php
                      5: /* Prototype: bool is_scalar ( mixed $var );
                      6:  * Description: Finds whether a variable is a scalar (i.e integer, float, string or boolean)
                      7:  */
                      8: 
                      9: echo "*** Testing basic operations ***\n";
                     10: $scalar_variables = array(
                     11:   0,  // integers
                     12:   1,
                     13:   -45678,
                     14:   0x5FF,  // hexadecimal as integer
                     15:   0X566,
                     16:   -0xAAF, 
                     17:   -0XCCF,
                     18:   01234,  // octal as integer
                     19:   -0126,
                     20: 
                     21:   0.0,  // floats
                     22:   -1.0,
                     23:   1e5,
                     24:   -1e7,
                     25:   1.6E7,
                     26:   475.e-8,
                     27:   784.e+30,
                     28:   98.45E+40,
                     29:   .5E-40,
                     30: 
                     31:   "",  // strings
                     32:   '',
                     33:   " ",
                     34:   ' ',
                     35:   "string",
                     36:   'string', 
                     37:   "0",  // numeric as string  
                     38:   "40",
                     39:   "50.696",
                     40:   "0x534",
                     41:   "0X534",
                     42: 
                     43:   TRUE,  // boolean
                     44:   FALSE,
                     45:   true,
                     46:   false
                     47: );
                     48: /* loop through each valid scalar variables in $scalar_variables 
                     49:    and see the working of is_scalar(), expected output: bool(true)
                     50: */
                     51: $loop_counter = 1;
                     52: foreach($scalar_variables as $scalar) {
                     53:   echo "-- Iteration $loop_counter --\n"; $loop_counter++;
                     54:   var_dump( is_scalar($scalar) );
                     55: }
                     56: 
                     57: echo "\n*** Testing possible variations ***\n";
                     58: // different scalar variables which are unset
                     59: $int_var = 10;
                     60: $float_var = 1e5;
                     61: $string_var = "string";
                     62: $boolean_var = true;
                     63: $object = new stdclass;
                     64: $array = array(10);
                     65: $resource = opendir('.');
                     66: unset($int_var, $float_var, $string_var, $boolean_var, $object, $array, $resource);
                     67: 
                     68: // resources 
                     69: $fp = fopen(__FILE__, "r");
                     70: $dfp = opendir(".");
                     71: 
                     72: $variation_array = array(
                     73:   NULL,
                     74:   null,
                     75: 
                     76:   array(),  // arrays 
                     77:   array(NULL),
                     78:   array(true),
                     79:   array(0),
                     80:   array(1,2,3,4),
                     81: 
                     82:   $fp,  // resources
                     83:   $dfp,
                     84: 
                     85:   new stdclass, // object
                     86: 
                     87:   @$int_var,  // scalars that are unset
                     88:   @$float_var,
                     89:   @$string_var,
                     90:   @$boolean_var,
                     91: 
                     92:   @$array,   // non scalars that are unset
                     93:   @$object,
                     94:   @$resource,
                     95: 
                     96:   @$undefined_var  // undefined variable
                     97: );  
                     98: 
                     99: /* loop through each element of $variation_array to see the 
                    100:    working of is_scalar on non-scalar values, expected output: bool(false)
                    101: */
                    102: $loop_counter = 1;
                    103: foreach( $variation_array as $value ) {
                    104:   echo "-- Iteration $loop_counter --\n"; $loop_counter++;
                    105:   var_dump( is_scalar($value) );
                    106: }
                    107: 
                    108: echo "\n*** Testing error conditions ***\n";
                    109: // Zero arguments
                    110: var_dump( is_scalar() );
                    111: 
                    112: // Arguments more than expected
                    113: var_dump( is_scalar( $scalar_variables[2], $scalar_variables[2]) );
                    114: var_dump( is_scalar( new stdclass, new stdclass) );
                    115: 
                    116: echo "Done\n";  
                    117: 
                    118: // close the resources used
                    119: fclose($fp);
                    120: closedir($dfp);
                    121: 
                    122: ?>
                    123: --EXPECTF--
                    124: *** Testing basic operations ***
                    125: -- Iteration 1 --
                    126: bool(true)
                    127: -- Iteration 2 --
                    128: bool(true)
                    129: -- Iteration 3 --
                    130: bool(true)
                    131: -- Iteration 4 --
                    132: bool(true)
                    133: -- Iteration 5 --
                    134: bool(true)
                    135: -- Iteration 6 --
                    136: bool(true)
                    137: -- Iteration 7 --
                    138: bool(true)
                    139: -- Iteration 8 --
                    140: bool(true)
                    141: -- Iteration 9 --
                    142: bool(true)
                    143: -- Iteration 10 --
                    144: bool(true)
                    145: -- Iteration 11 --
                    146: bool(true)
                    147: -- Iteration 12 --
                    148: bool(true)
                    149: -- Iteration 13 --
                    150: bool(true)
                    151: -- Iteration 14 --
                    152: bool(true)
                    153: -- Iteration 15 --
                    154: bool(true)
                    155: -- Iteration 16 --
                    156: bool(true)
                    157: -- Iteration 17 --
                    158: bool(true)
                    159: -- Iteration 18 --
                    160: bool(true)
                    161: -- Iteration 19 --
                    162: bool(true)
                    163: -- Iteration 20 --
                    164: bool(true)
                    165: -- Iteration 21 --
                    166: bool(true)
                    167: -- Iteration 22 --
                    168: bool(true)
                    169: -- Iteration 23 --
                    170: bool(true)
                    171: -- Iteration 24 --
                    172: bool(true)
                    173: -- Iteration 25 --
                    174: bool(true)
                    175: -- Iteration 26 --
                    176: bool(true)
                    177: -- Iteration 27 --
                    178: bool(true)
                    179: -- Iteration 28 --
                    180: bool(true)
                    181: -- Iteration 29 --
                    182: bool(true)
                    183: -- Iteration 30 --
                    184: bool(true)
                    185: -- Iteration 31 --
                    186: bool(true)
                    187: -- Iteration 32 --
                    188: bool(true)
                    189: -- Iteration 33 --
                    190: bool(true)
                    191: 
                    192: *** Testing possible variations ***
                    193: -- Iteration 1 --
                    194: bool(false)
                    195: -- Iteration 2 --
                    196: bool(false)
                    197: -- Iteration 3 --
                    198: bool(false)
                    199: -- Iteration 4 --
                    200: bool(false)
                    201: -- Iteration 5 --
                    202: bool(false)
                    203: -- Iteration 6 --
                    204: bool(false)
                    205: -- Iteration 7 --
                    206: bool(false)
                    207: -- Iteration 8 --
                    208: bool(false)
                    209: -- Iteration 9 --
                    210: bool(false)
                    211: -- Iteration 10 --
                    212: bool(false)
                    213: -- Iteration 11 --
                    214: bool(false)
                    215: -- Iteration 12 --
                    216: bool(false)
                    217: -- Iteration 13 --
                    218: bool(false)
                    219: -- Iteration 14 --
                    220: bool(false)
                    221: -- Iteration 15 --
                    222: bool(false)
                    223: -- Iteration 16 --
                    224: bool(false)
                    225: -- Iteration 17 --
                    226: bool(false)
                    227: -- Iteration 18 --
                    228: bool(false)
                    229: 
                    230: *** Testing error conditions ***
                    231: 
                    232: Warning: is_scalar() expects exactly 1 parameter, 0 given in %s on line %d
                    233: NULL
                    234: 
                    235: Warning: is_scalar() expects exactly 1 parameter, 2 given in %s on line %d
                    236: NULL
                    237: 
                    238: Warning: is_scalar() expects exactly 1 parameter, 2 given in %s on line %d
                    239: NULL
                    240: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>