Annotation of embedaddon/php/ext/standard/tests/general_functions/gettype_settype_variation1.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Test gettype() & settype() functions : usage variatoins
        !             3: --SKIPIF--
        !             4: <?php
        !             5: if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
        !             6: ?>
        !             7: --INI--
        !             8: precision=14
        !             9: --FILE--
        !            10: <?php
        !            11: /* Prototype: string gettype ( mixed $var );
        !            12:    Description: Returns the type of the PHP variable var
        !            13: 
        !            14:    Prototype: bool settype ( mixed &$var, string $type );
        !            15:    Description: Set the type of variable var to type 
        !            16: */
        !            17: 
        !            18: /* Test usage variation of gettype() and settype() functions: 
        !            19:          settype() to null type. 
        !            20:    Set type of the data to "null" and verify using gettype
        !            21:    Following are performed in the listed sequence:
        !            22:      get the current type of the variable 
        !            23:      set the type of the variable to "null type"
        !            24:      dump the variable to see its new data
        !            25:      get the new type of the variable
        !            26: */
        !            27:      
        !            28: /* function to handle catchable errors */
        !            29: function foo($errno, $errstr, $errfile, $errline) {
        !            30: //     var_dump($errstr);
        !            31:    // print error no and error string
        !            32:    echo "$errno: $errstr\n";
        !            33: }
        !            34: //set the error handler, this is required as
        !            35: // settype() would fail with catachable fatal error 
        !            36: set_error_handler("foo"); 
        !            37: 
        !            38: $var1 = "another string";
        !            39: $var2 = array(2,3,4);
        !            40: 
        !            41: // a variable which is unset
        !            42: $unset_var = 10.5;
        !            43: unset( $unset_var );
        !            44: 
        !            45: class point
        !            46: {
        !            47:   var $x;
        !            48:   var $y;
        !            49: 
        !            50:   function point($x, $y) {
        !            51:      $this->x = $x;
        !            52:      $this->y = $y;
        !            53:   }
        !            54: 
        !            55:   function __toString() {
        !            56:      return "ObjectPoint";
        !            57:   }
        !            58: }
        !            59: 
        !            60: $var_values = array ( 
        !            61:   /* nulls */
        !            62:   null,  
        !            63: 
        !            64:   /* boolean */
        !            65:   FALSE, 
        !            66:   TRUE,
        !            67:   true,
        !            68:  
        !            69:   /* strings */
        !            70:   "\xFF",
        !            71:   "\x66",
        !            72:   "\0123",
        !            73:   "",
        !            74:   '',
        !            75:   " ",
        !            76:   ' ',
        !            77:   /* numerics in the form of string */
        !            78:   '10',
        !            79:   "10",
        !            80:   "10string",
        !            81:   '10string',
        !            82:   "1",  
        !            83:   "-1",
        !            84:   "1e2",
        !            85:   " 1",
        !            86:   "2974394749328742328432",
        !            87:   "-1e-2",
        !            88:   '1',
        !            89:   '-1',
        !            90:   '1e2',
        !            91:   ' 1',
        !            92:   '2974394749328742328432',
        !            93:   '-1e-2',
        !            94:   "0xff",
        !            95:   '0x55',
        !            96:   '0XA55',
        !            97:   '0X123',
        !            98:   "0123",
        !            99:   '0123',
        !           100:   "-0123",
        !           101:   "+0123",
        !           102:   '-0123',
        !           103:   '+0123',
        !           104:   "-0x80001", // invalid numerics as its prefix with sign or have decimal points
        !           105:   "+0x80001",
        !           106:   "-0x80001.5",
        !           107:   "0x80001.5",
        !           108:   "@$%#$%^$%^&^",
        !           109: 
        !           110:   /* arrays */
        !           111:   array(),
        !           112:   array(NULL),
        !           113:   array(1,2,3,4),
        !           114:   array(1 => "one", 2 => "two", "3" => "three", "four" => 4),
        !           115:   array(1.5, 2.4, 6.5e6),
        !           116: 
        !           117:   /* integers */
        !           118:   -2147483648, // max -ne int value
        !           119:   2147483647,
        !           120:   2147483649,
        !           121:   1232147483649,
        !           122:   0x55,
        !           123:   0xF674593039, // a hex value > than max int
        !           124:   -0X558F,
        !           125:   0555,
        !           126:   -0555,
        !           127:   02224242434343152, // an octal value > than max int
        !           128:   
        !           129:   /* floats */
        !           130:   1e5,
        !           131:   -1e5,
        !           132:   1E5, 
        !           133:   -1E5,
        !           134:   -1.5,
        !           135:   .5,
        !           136:   -.5,
        !           137:   .5e6,
        !           138:   -.5e6,
        !           139:   -.5e-6,
        !           140:   .5e+6,
        !           141:   -.5e+6,
        !           142:   .512E6,
        !           143:   -.512E6,
        !           144:   .512E-6,
        !           145:   +.512E-6,
        !           146:   .512E+6,
        !           147:   -.512E+6,
        !           148: 
        !           149:   new point(NULL, NULL),
        !           150:   new point(2.5, 40.5),
        !           151:   new point(0, 0),
        !           152: 
        !           153:   /* undefined/unset vars */
        !           154:   $unset_var,
        !           155:   $undef_var
        !           156: );
        !           157: 
        !           158: /* test conversion to null type */                
        !           159: $type = "null";
        !           160: 
        !           161: echo "\n*** Testing gettype() & settype() functions : usage variations ***\n";
        !           162: echo "\n-- Setting type of data to $type --\n";
        !           163: $loop_count = 1;
        !           164: foreach ($var_values as $var) {
        !           165:   echo "-- Iteration $loop_count --\n"; $loop_count++;
        !           166: 
        !           167:   // get the current data type 
        !           168:   var_dump( gettype($var) );
        !           169:   
        !           170:   // convert it to null 
        !           171:   var_dump( settype($var, $type) );
        !           172: 
        !           173:   // dump the converted data 
        !           174:   var_dump( $var );
        !           175:   
        !           176:   // check the new type after conversion
        !           177:   var_dump( gettype($var) );
        !           178: }
        !           179: 
        !           180: echo "Done\n";
        !           181: ?>
        !           182: --EXPECTF--    
        !           183: 8: Undefined variable: unset_var
        !           184: 8: Undefined variable: undef_var
        !           185: 
        !           186: *** Testing gettype() & settype() functions : usage variations ***
        !           187: 
        !           188: -- Setting type of data to null --
        !           189: -- Iteration 1 --
        !           190: string(4) "NULL"
        !           191: bool(true)
        !           192: NULL
        !           193: string(4) "NULL"
        !           194: -- Iteration 2 --
        !           195: string(7) "boolean"
        !           196: bool(true)
        !           197: NULL
        !           198: string(4) "NULL"
        !           199: -- Iteration 3 --
        !           200: string(7) "boolean"
        !           201: bool(true)
        !           202: NULL
        !           203: string(4) "NULL"
        !           204: -- Iteration 4 --
        !           205: string(7) "boolean"
        !           206: bool(true)
        !           207: NULL
        !           208: string(4) "NULL"
        !           209: -- Iteration 5 --
        !           210: string(6) "string"
        !           211: bool(true)
        !           212: NULL
        !           213: string(4) "NULL"
        !           214: -- Iteration 6 --
        !           215: string(6) "string"
        !           216: bool(true)
        !           217: NULL
        !           218: string(4) "NULL"
        !           219: -- Iteration 7 --
        !           220: string(6) "string"
        !           221: bool(true)
        !           222: NULL
        !           223: string(4) "NULL"
        !           224: -- Iteration 8 --
        !           225: string(6) "string"
        !           226: bool(true)
        !           227: NULL
        !           228: string(4) "NULL"
        !           229: -- Iteration 9 --
        !           230: string(6) "string"
        !           231: bool(true)
        !           232: NULL
        !           233: string(4) "NULL"
        !           234: -- Iteration 10 --
        !           235: string(6) "string"
        !           236: bool(true)
        !           237: NULL
        !           238: string(4) "NULL"
        !           239: -- Iteration 11 --
        !           240: string(6) "string"
        !           241: bool(true)
        !           242: NULL
        !           243: string(4) "NULL"
        !           244: -- Iteration 12 --
        !           245: string(6) "string"
        !           246: bool(true)
        !           247: NULL
        !           248: string(4) "NULL"
        !           249: -- Iteration 13 --
        !           250: string(6) "string"
        !           251: bool(true)
        !           252: NULL
        !           253: string(4) "NULL"
        !           254: -- Iteration 14 --
        !           255: string(6) "string"
        !           256: bool(true)
        !           257: NULL
        !           258: string(4) "NULL"
        !           259: -- Iteration 15 --
        !           260: string(6) "string"
        !           261: bool(true)
        !           262: NULL
        !           263: string(4) "NULL"
        !           264: -- Iteration 16 --
        !           265: string(6) "string"
        !           266: bool(true)
        !           267: NULL
        !           268: string(4) "NULL"
        !           269: -- Iteration 17 --
        !           270: string(6) "string"
        !           271: bool(true)
        !           272: NULL
        !           273: string(4) "NULL"
        !           274: -- Iteration 18 --
        !           275: string(6) "string"
        !           276: bool(true)
        !           277: NULL
        !           278: string(4) "NULL"
        !           279: -- Iteration 19 --
        !           280: string(6) "string"
        !           281: bool(true)
        !           282: NULL
        !           283: string(4) "NULL"
        !           284: -- Iteration 20 --
        !           285: string(6) "string"
        !           286: bool(true)
        !           287: NULL
        !           288: string(4) "NULL"
        !           289: -- Iteration 21 --
        !           290: string(6) "string"
        !           291: bool(true)
        !           292: NULL
        !           293: string(4) "NULL"
        !           294: -- Iteration 22 --
        !           295: string(6) "string"
        !           296: bool(true)
        !           297: NULL
        !           298: string(4) "NULL"
        !           299: -- Iteration 23 --
        !           300: string(6) "string"
        !           301: bool(true)
        !           302: NULL
        !           303: string(4) "NULL"
        !           304: -- Iteration 24 --
        !           305: string(6) "string"
        !           306: bool(true)
        !           307: NULL
        !           308: string(4) "NULL"
        !           309: -- Iteration 25 --
        !           310: string(6) "string"
        !           311: bool(true)
        !           312: NULL
        !           313: string(4) "NULL"
        !           314: -- Iteration 26 --
        !           315: string(6) "string"
        !           316: bool(true)
        !           317: NULL
        !           318: string(4) "NULL"
        !           319: -- Iteration 27 --
        !           320: string(6) "string"
        !           321: bool(true)
        !           322: NULL
        !           323: string(4) "NULL"
        !           324: -- Iteration 28 --
        !           325: string(6) "string"
        !           326: bool(true)
        !           327: NULL
        !           328: string(4) "NULL"
        !           329: -- Iteration 29 --
        !           330: string(6) "string"
        !           331: bool(true)
        !           332: NULL
        !           333: string(4) "NULL"
        !           334: -- Iteration 30 --
        !           335: string(6) "string"
        !           336: bool(true)
        !           337: NULL
        !           338: string(4) "NULL"
        !           339: -- Iteration 31 --
        !           340: string(6) "string"
        !           341: bool(true)
        !           342: NULL
        !           343: string(4) "NULL"
        !           344: -- Iteration 32 --
        !           345: string(6) "string"
        !           346: bool(true)
        !           347: NULL
        !           348: string(4) "NULL"
        !           349: -- Iteration 33 --
        !           350: string(6) "string"
        !           351: bool(true)
        !           352: NULL
        !           353: string(4) "NULL"
        !           354: -- Iteration 34 --
        !           355: string(6) "string"
        !           356: bool(true)
        !           357: NULL
        !           358: string(4) "NULL"
        !           359: -- Iteration 35 --
        !           360: string(6) "string"
        !           361: bool(true)
        !           362: NULL
        !           363: string(4) "NULL"
        !           364: -- Iteration 36 --
        !           365: string(6) "string"
        !           366: bool(true)
        !           367: NULL
        !           368: string(4) "NULL"
        !           369: -- Iteration 37 --
        !           370: string(6) "string"
        !           371: bool(true)
        !           372: NULL
        !           373: string(4) "NULL"
        !           374: -- Iteration 38 --
        !           375: string(6) "string"
        !           376: bool(true)
        !           377: NULL
        !           378: string(4) "NULL"
        !           379: -- Iteration 39 --
        !           380: string(6) "string"
        !           381: bool(true)
        !           382: NULL
        !           383: string(4) "NULL"
        !           384: -- Iteration 40 --
        !           385: string(6) "string"
        !           386: bool(true)
        !           387: NULL
        !           388: string(4) "NULL"
        !           389: -- Iteration 41 --
        !           390: string(6) "string"
        !           391: bool(true)
        !           392: NULL
        !           393: string(4) "NULL"
        !           394: -- Iteration 42 --
        !           395: string(6) "string"
        !           396: bool(true)
        !           397: NULL
        !           398: string(4) "NULL"
        !           399: -- Iteration 43 --
        !           400: string(5) "array"
        !           401: bool(true)
        !           402: NULL
        !           403: string(4) "NULL"
        !           404: -- Iteration 44 --
        !           405: string(5) "array"
        !           406: bool(true)
        !           407: NULL
        !           408: string(4) "NULL"
        !           409: -- Iteration 45 --
        !           410: string(5) "array"
        !           411: bool(true)
        !           412: NULL
        !           413: string(4) "NULL"
        !           414: -- Iteration 46 --
        !           415: string(5) "array"
        !           416: bool(true)
        !           417: NULL
        !           418: string(4) "NULL"
        !           419: -- Iteration 47 --
        !           420: string(5) "array"
        !           421: bool(true)
        !           422: NULL
        !           423: string(4) "NULL"
        !           424: -- Iteration 48 --
        !           425: string(6) "double"
        !           426: bool(true)
        !           427: NULL
        !           428: string(4) "NULL"
        !           429: -- Iteration 49 --
        !           430: string(7) "integer"
        !           431: bool(true)
        !           432: NULL
        !           433: string(4) "NULL"
        !           434: -- Iteration 50 --
        !           435: string(6) "double"
        !           436: bool(true)
        !           437: NULL
        !           438: string(4) "NULL"
        !           439: -- Iteration 51 --
        !           440: string(6) "double"
        !           441: bool(true)
        !           442: NULL
        !           443: string(4) "NULL"
        !           444: -- Iteration 52 --
        !           445: string(7) "integer"
        !           446: bool(true)
        !           447: NULL
        !           448: string(4) "NULL"
        !           449: -- Iteration 53 --
        !           450: string(6) "double"
        !           451: bool(true)
        !           452: NULL
        !           453: string(4) "NULL"
        !           454: -- Iteration 54 --
        !           455: string(7) "integer"
        !           456: bool(true)
        !           457: NULL
        !           458: string(4) "NULL"
        !           459: -- Iteration 55 --
        !           460: string(7) "integer"
        !           461: bool(true)
        !           462: NULL
        !           463: string(4) "NULL"
        !           464: -- Iteration 56 --
        !           465: string(7) "integer"
        !           466: bool(true)
        !           467: NULL
        !           468: string(4) "NULL"
        !           469: -- Iteration 57 --
        !           470: string(6) "double"
        !           471: bool(true)
        !           472: NULL
        !           473: string(4) "NULL"
        !           474: -- Iteration 58 --
        !           475: string(6) "double"
        !           476: bool(true)
        !           477: NULL
        !           478: string(4) "NULL"
        !           479: -- Iteration 59 --
        !           480: string(6) "double"
        !           481: bool(true)
        !           482: NULL
        !           483: string(4) "NULL"
        !           484: -- Iteration 60 --
        !           485: string(6) "double"
        !           486: bool(true)
        !           487: NULL
        !           488: string(4) "NULL"
        !           489: -- Iteration 61 --
        !           490: string(6) "double"
        !           491: bool(true)
        !           492: NULL
        !           493: string(4) "NULL"
        !           494: -- Iteration 62 --
        !           495: string(6) "double"
        !           496: bool(true)
        !           497: NULL
        !           498: string(4) "NULL"
        !           499: -- Iteration 63 --
        !           500: string(6) "double"
        !           501: bool(true)
        !           502: NULL
        !           503: string(4) "NULL"
        !           504: -- Iteration 64 --
        !           505: string(6) "double"
        !           506: bool(true)
        !           507: NULL
        !           508: string(4) "NULL"
        !           509: -- Iteration 65 --
        !           510: string(6) "double"
        !           511: bool(true)
        !           512: NULL
        !           513: string(4) "NULL"
        !           514: -- Iteration 66 --
        !           515: string(6) "double"
        !           516: bool(true)
        !           517: NULL
        !           518: string(4) "NULL"
        !           519: -- Iteration 67 --
        !           520: string(6) "double"
        !           521: bool(true)
        !           522: NULL
        !           523: string(4) "NULL"
        !           524: -- Iteration 68 --
        !           525: string(6) "double"
        !           526: bool(true)
        !           527: NULL
        !           528: string(4) "NULL"
        !           529: -- Iteration 69 --
        !           530: string(6) "double"
        !           531: bool(true)
        !           532: NULL
        !           533: string(4) "NULL"
        !           534: -- Iteration 70 --
        !           535: string(6) "double"
        !           536: bool(true)
        !           537: NULL
        !           538: string(4) "NULL"
        !           539: -- Iteration 71 --
        !           540: string(6) "double"
        !           541: bool(true)
        !           542: NULL
        !           543: string(4) "NULL"
        !           544: -- Iteration 72 --
        !           545: string(6) "double"
        !           546: bool(true)
        !           547: NULL
        !           548: string(4) "NULL"
        !           549: -- Iteration 73 --
        !           550: string(6) "double"
        !           551: bool(true)
        !           552: NULL
        !           553: string(4) "NULL"
        !           554: -- Iteration 74 --
        !           555: string(6) "double"
        !           556: bool(true)
        !           557: NULL
        !           558: string(4) "NULL"
        !           559: -- Iteration 75 --
        !           560: string(6) "double"
        !           561: bool(true)
        !           562: NULL
        !           563: string(4) "NULL"
        !           564: -- Iteration 76 --
        !           565: string(6) "object"
        !           566: bool(true)
        !           567: NULL
        !           568: string(4) "NULL"
        !           569: -- Iteration 77 --
        !           570: string(6) "object"
        !           571: bool(true)
        !           572: NULL
        !           573: string(4) "NULL"
        !           574: -- Iteration 78 --
        !           575: string(6) "object"
        !           576: bool(true)
        !           577: NULL
        !           578: string(4) "NULL"
        !           579: -- Iteration 79 --
        !           580: string(4) "NULL"
        !           581: bool(true)
        !           582: NULL
        !           583: string(4) "NULL"
        !           584: -- Iteration 80 --
        !           585: string(4) "NULL"
        !           586: bool(true)
        !           587: NULL
        !           588: string(4) "NULL"
        !           589: Done

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