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

1.1     ! misho       1: --TEST--
        !             2: Test gettype() & settype() functions : usage variations
        !             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 string type.
        !            20:    Set type of the data to "string" 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 string 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 string type */
        !           159: $type = "string";
        !           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 string --
        !           189: -- Iteration 1 --
        !           190: string(4) "NULL"
        !           191: bool(true)
        !           192: string(0) ""
        !           193: string(6) "string"
        !           194: -- Iteration 2 --
        !           195: string(7) "boolean"
        !           196: bool(true)
        !           197: string(0) ""
        !           198: string(6) "string"
        !           199: -- Iteration 3 --
        !           200: string(7) "boolean"
        !           201: bool(true)
        !           202: string(1) "1"
        !           203: string(6) "string"
        !           204: -- Iteration 4 --
        !           205: string(7) "boolean"
        !           206: bool(true)
        !           207: string(1) "1"
        !           208: string(6) "string"
        !           209: -- Iteration 5 --
        !           210: string(6) "string"
        !           211: bool(true)
        !           212: string(1) "ÿ"
        !           213: string(6) "string"
        !           214: -- Iteration 6 --
        !           215: string(6) "string"
        !           216: bool(true)
        !           217: string(1) "f"
        !           218: string(6) "string"
        !           219: -- Iteration 7 --
        !           220: string(6) "string"
        !           221: bool(true)
        !           222: string(2) "
        !           223: 3"
        !           224: string(6) "string"
        !           225: -- Iteration 8 --
        !           226: string(6) "string"
        !           227: bool(true)
        !           228: string(0) ""
        !           229: string(6) "string"
        !           230: -- Iteration 9 --
        !           231: string(6) "string"
        !           232: bool(true)
        !           233: string(0) ""
        !           234: string(6) "string"
        !           235: -- Iteration 10 --
        !           236: string(6) "string"
        !           237: bool(true)
        !           238: string(1) " "
        !           239: string(6) "string"
        !           240: -- Iteration 11 --
        !           241: string(6) "string"
        !           242: bool(true)
        !           243: string(1) " "
        !           244: string(6) "string"
        !           245: -- Iteration 12 --
        !           246: string(6) "string"
        !           247: bool(true)
        !           248: string(2) "10"
        !           249: string(6) "string"
        !           250: -- Iteration 13 --
        !           251: string(6) "string"
        !           252: bool(true)
        !           253: string(2) "10"
        !           254: string(6) "string"
        !           255: -- Iteration 14 --
        !           256: string(6) "string"
        !           257: bool(true)
        !           258: string(8) "10string"
        !           259: string(6) "string"
        !           260: -- Iteration 15 --
        !           261: string(6) "string"
        !           262: bool(true)
        !           263: string(8) "10string"
        !           264: string(6) "string"
        !           265: -- Iteration 16 --
        !           266: string(6) "string"
        !           267: bool(true)
        !           268: string(1) "1"
        !           269: string(6) "string"
        !           270: -- Iteration 17 --
        !           271: string(6) "string"
        !           272: bool(true)
        !           273: string(2) "-1"
        !           274: string(6) "string"
        !           275: -- Iteration 18 --
        !           276: string(6) "string"
        !           277: bool(true)
        !           278: string(3) "1e2"
        !           279: string(6) "string"
        !           280: -- Iteration 19 --
        !           281: string(6) "string"
        !           282: bool(true)
        !           283: string(2) " 1"
        !           284: string(6) "string"
        !           285: -- Iteration 20 --
        !           286: string(6) "string"
        !           287: bool(true)
        !           288: string(22) "2974394749328742328432"
        !           289: string(6) "string"
        !           290: -- Iteration 21 --
        !           291: string(6) "string"
        !           292: bool(true)
        !           293: string(5) "-1e-2"
        !           294: string(6) "string"
        !           295: -- Iteration 22 --
        !           296: string(6) "string"
        !           297: bool(true)
        !           298: string(1) "1"
        !           299: string(6) "string"
        !           300: -- Iteration 23 --
        !           301: string(6) "string"
        !           302: bool(true)
        !           303: string(2) "-1"
        !           304: string(6) "string"
        !           305: -- Iteration 24 --
        !           306: string(6) "string"
        !           307: bool(true)
        !           308: string(3) "1e2"
        !           309: string(6) "string"
        !           310: -- Iteration 25 --
        !           311: string(6) "string"
        !           312: bool(true)
        !           313: string(2) " 1"
        !           314: string(6) "string"
        !           315: -- Iteration 26 --
        !           316: string(6) "string"
        !           317: bool(true)
        !           318: string(22) "2974394749328742328432"
        !           319: string(6) "string"
        !           320: -- Iteration 27 --
        !           321: string(6) "string"
        !           322: bool(true)
        !           323: string(5) "-1e-2"
        !           324: string(6) "string"
        !           325: -- Iteration 28 --
        !           326: string(6) "string"
        !           327: bool(true)
        !           328: string(4) "0xff"
        !           329: string(6) "string"
        !           330: -- Iteration 29 --
        !           331: string(6) "string"
        !           332: bool(true)
        !           333: string(4) "0x55"
        !           334: string(6) "string"
        !           335: -- Iteration 30 --
        !           336: string(6) "string"
        !           337: bool(true)
        !           338: string(5) "0XA55"
        !           339: string(6) "string"
        !           340: -- Iteration 31 --
        !           341: string(6) "string"
        !           342: bool(true)
        !           343: string(5) "0X123"
        !           344: string(6) "string"
        !           345: -- Iteration 32 --
        !           346: string(6) "string"
        !           347: bool(true)
        !           348: string(4) "0123"
        !           349: string(6) "string"
        !           350: -- Iteration 33 --
        !           351: string(6) "string"
        !           352: bool(true)
        !           353: string(4) "0123"
        !           354: string(6) "string"
        !           355: -- Iteration 34 --
        !           356: string(6) "string"
        !           357: bool(true)
        !           358: string(5) "-0123"
        !           359: string(6) "string"
        !           360: -- Iteration 35 --
        !           361: string(6) "string"
        !           362: bool(true)
        !           363: string(5) "+0123"
        !           364: string(6) "string"
        !           365: -- Iteration 36 --
        !           366: string(6) "string"
        !           367: bool(true)
        !           368: string(5) "-0123"
        !           369: string(6) "string"
        !           370: -- Iteration 37 --
        !           371: string(6) "string"
        !           372: bool(true)
        !           373: string(5) "+0123"
        !           374: string(6) "string"
        !           375: -- Iteration 38 --
        !           376: string(6) "string"
        !           377: bool(true)
        !           378: string(8) "-0x80001"
        !           379: string(6) "string"
        !           380: -- Iteration 39 --
        !           381: string(6) "string"
        !           382: bool(true)
        !           383: string(8) "+0x80001"
        !           384: string(6) "string"
        !           385: -- Iteration 40 --
        !           386: string(6) "string"
        !           387: bool(true)
        !           388: string(10) "-0x80001.5"
        !           389: string(6) "string"
        !           390: -- Iteration 41 --
        !           391: string(6) "string"
        !           392: bool(true)
        !           393: string(9) "0x80001.5"
        !           394: string(6) "string"
        !           395: -- Iteration 42 --
        !           396: string(6) "string"
        !           397: bool(true)
        !           398: string(12) "@$%#$%^$%^&^"
        !           399: string(6) "string"
        !           400: -- Iteration 43 --
        !           401: string(5) "array"
        !           402: 8: Array to string conversion
        !           403: bool(true)
        !           404: string(5) "Array"
        !           405: string(6) "string"
        !           406: -- Iteration 44 --
        !           407: string(5) "array"
        !           408: 8: Array to string conversion
        !           409: bool(true)
        !           410: string(5) "Array"
        !           411: string(6) "string"
        !           412: -- Iteration 45 --
        !           413: string(5) "array"
        !           414: 8: Array to string conversion
        !           415: bool(true)
        !           416: string(5) "Array"
        !           417: string(6) "string"
        !           418: -- Iteration 46 --
        !           419: string(5) "array"
        !           420: 8: Array to string conversion
        !           421: bool(true)
        !           422: string(5) "Array"
        !           423: string(6) "string"
        !           424: -- Iteration 47 --
        !           425: string(5) "array"
        !           426: 8: Array to string conversion
        !           427: bool(true)
        !           428: string(5) "Array"
        !           429: string(6) "string"
        !           430: -- Iteration 48 --
        !           431: string(6) "double"
        !           432: bool(true)
        !           433: string(11) "-2147483648"
        !           434: string(6) "string"
        !           435: -- Iteration 49 --
        !           436: string(7) "integer"
        !           437: bool(true)
        !           438: string(10) "2147483647"
        !           439: string(6) "string"
        !           440: -- Iteration 50 --
        !           441: string(6) "double"
        !           442: bool(true)
        !           443: string(10) "2147483649"
        !           444: string(6) "string"
        !           445: -- Iteration 51 --
        !           446: string(6) "double"
        !           447: bool(true)
        !           448: string(13) "1232147483649"
        !           449: string(6) "string"
        !           450: -- Iteration 52 --
        !           451: string(7) "integer"
        !           452: bool(true)
        !           453: string(2) "85"
        !           454: string(6) "string"
        !           455: -- Iteration 53 --
        !           456: string(6) "double"
        !           457: bool(true)
        !           458: string(13) "1058513956921"
        !           459: string(6) "string"
        !           460: -- Iteration 54 --
        !           461: string(7) "integer"
        !           462: bool(true)
        !           463: string(6) "-21903"
        !           464: string(6) "string"
        !           465: -- Iteration 55 --
        !           466: string(7) "integer"
        !           467: bool(true)
        !           468: string(3) "365"
        !           469: string(6) "string"
        !           470: -- Iteration 56 --
        !           471: string(7) "integer"
        !           472: bool(true)
        !           473: string(4) "-365"
        !           474: string(6) "string"
        !           475: -- Iteration 57 --
        !           476: string(6) "double"
        !           477: bool(true)
        !           478: string(14) "80561044571754"
        !           479: string(6) "string"
        !           480: -- Iteration 58 --
        !           481: string(6) "double"
        !           482: bool(true)
        !           483: string(6) "100000"
        !           484: string(6) "string"
        !           485: -- Iteration 59 --
        !           486: string(6) "double"
        !           487: bool(true)
        !           488: string(7) "-100000"
        !           489: string(6) "string"
        !           490: -- Iteration 60 --
        !           491: string(6) "double"
        !           492: bool(true)
        !           493: string(6) "100000"
        !           494: string(6) "string"
        !           495: -- Iteration 61 --
        !           496: string(6) "double"
        !           497: bool(true)
        !           498: string(7) "-100000"
        !           499: string(6) "string"
        !           500: -- Iteration 62 --
        !           501: string(6) "double"
        !           502: bool(true)
        !           503: string(4) "-1.5"
        !           504: string(6) "string"
        !           505: -- Iteration 63 --
        !           506: string(6) "double"
        !           507: bool(true)
        !           508: string(3) "0.5"
        !           509: string(6) "string"
        !           510: -- Iteration 64 --
        !           511: string(6) "double"
        !           512: bool(true)
        !           513: string(4) "-0.5"
        !           514: string(6) "string"
        !           515: -- Iteration 65 --
        !           516: string(6) "double"
        !           517: bool(true)
        !           518: string(6) "500000"
        !           519: string(6) "string"
        !           520: -- Iteration 66 --
        !           521: string(6) "double"
        !           522: bool(true)
        !           523: string(7) "-500000"
        !           524: string(6) "string"
        !           525: -- Iteration 67 --
        !           526: string(6) "double"
        !           527: bool(true)
        !           528: string(7) "-5.0E-7"
        !           529: string(6) "string"
        !           530: -- Iteration 68 --
        !           531: string(6) "double"
        !           532: bool(true)
        !           533: string(6) "500000"
        !           534: string(6) "string"
        !           535: -- Iteration 69 --
        !           536: string(6) "double"
        !           537: bool(true)
        !           538: string(7) "-500000"
        !           539: string(6) "string"
        !           540: -- Iteration 70 --
        !           541: string(6) "double"
        !           542: bool(true)
        !           543: string(6) "512000"
        !           544: string(6) "string"
        !           545: -- Iteration 71 --
        !           546: string(6) "double"
        !           547: bool(true)
        !           548: string(7) "-512000"
        !           549: string(6) "string"
        !           550: -- Iteration 72 --
        !           551: string(6) "double"
        !           552: bool(true)
        !           553: string(7) "5.12E-7"
        !           554: string(6) "string"
        !           555: -- Iteration 73 --
        !           556: string(6) "double"
        !           557: bool(true)
        !           558: string(7) "5.12E-7"
        !           559: string(6) "string"
        !           560: -- Iteration 74 --
        !           561: string(6) "double"
        !           562: bool(true)
        !           563: string(6) "512000"
        !           564: string(6) "string"
        !           565: -- Iteration 75 --
        !           566: string(6) "double"
        !           567: bool(true)
        !           568: string(7) "-512000"
        !           569: string(6) "string"
        !           570: -- Iteration 76 --
        !           571: string(6) "object"
        !           572: bool(true)
        !           573: string(11) "ObjectPoint"
        !           574: string(6) "string"
        !           575: -- Iteration 77 --
        !           576: string(6) "object"
        !           577: bool(true)
        !           578: string(11) "ObjectPoint"
        !           579: string(6) "string"
        !           580: -- Iteration 78 --
        !           581: string(6) "object"
        !           582: bool(true)
        !           583: string(11) "ObjectPoint"
        !           584: string(6) "string"
        !           585: -- Iteration 79 --
        !           586: string(4) "NULL"
        !           587: bool(true)
        !           588: string(0) ""
        !           589: string(6) "string"
        !           590: -- Iteration 80 --
        !           591: string(4) "NULL"
        !           592: bool(true)
        !           593: string(0) ""
        !           594: string(6) "string"
        !           595: Done

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