Annotation of embedaddon/php/ext/standard/tests/general_functions/gettype_settype_variation6.phpt, revision 1.1.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 array type.
20: Set type of the data to "array" 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 array 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 array type */
159: $type = "array";
160:
161: echo "\n*** Testing gettype() & settype() functions : usage variations ***\n";
162: echo "\n-- Setting type of data to $type --\n";
163:
164: $loop_count = 1;
165: foreach ($var_values as $var) {
166: echo "-- Iteration $loop_count --\n"; $loop_count++;
167:
168: // get the current data type
169: var_dump( gettype($var) );
170:
171: // convert it to null
172: var_dump( settype($var, $type) );
173:
174: // dump the converted data
175: var_dump( $var );
176:
177: // check the new type after conversion
178: var_dump( gettype($var) );
179: }
180:
181:
182: echo "Done\n";
183: ?>
184: --EXPECTF--
185: 8: Undefined variable: unset_var
186: 8: Undefined variable: undef_var
187:
188: *** Testing gettype() & settype() functions : usage variations ***
189:
190: -- Setting type of data to array --
191: -- Iteration 1 --
192: string(4) "NULL"
193: bool(true)
194: array(0) {
195: }
196: string(5) "array"
197: -- Iteration 2 --
198: string(7) "boolean"
199: bool(true)
200: array(1) {
201: [0]=>
202: bool(false)
203: }
204: string(5) "array"
205: -- Iteration 3 --
206: string(7) "boolean"
207: bool(true)
208: array(1) {
209: [0]=>
210: bool(true)
211: }
212: string(5) "array"
213: -- Iteration 4 --
214: string(7) "boolean"
215: bool(true)
216: array(1) {
217: [0]=>
218: bool(true)
219: }
220: string(5) "array"
221: -- Iteration 5 --
222: string(6) "string"
223: bool(true)
224: array(1) {
225: [0]=>
226: string(1) "ÿ"
227: }
228: string(5) "array"
229: -- Iteration 6 --
230: string(6) "string"
231: bool(true)
232: array(1) {
233: [0]=>
234: string(1) "f"
235: }
236: string(5) "array"
237: -- Iteration 7 --
238: string(6) "string"
239: bool(true)
240: array(1) {
241: [0]=>
242: string(2) "
243: 3"
244: }
245: string(5) "array"
246: -- Iteration 8 --
247: string(6) "string"
248: bool(true)
249: array(1) {
250: [0]=>
251: string(0) ""
252: }
253: string(5) "array"
254: -- Iteration 9 --
255: string(6) "string"
256: bool(true)
257: array(1) {
258: [0]=>
259: string(0) ""
260: }
261: string(5) "array"
262: -- Iteration 10 --
263: string(6) "string"
264: bool(true)
265: array(1) {
266: [0]=>
267: string(1) " "
268: }
269: string(5) "array"
270: -- Iteration 11 --
271: string(6) "string"
272: bool(true)
273: array(1) {
274: [0]=>
275: string(1) " "
276: }
277: string(5) "array"
278: -- Iteration 12 --
279: string(6) "string"
280: bool(true)
281: array(1) {
282: [0]=>
283: string(2) "10"
284: }
285: string(5) "array"
286: -- Iteration 13 --
287: string(6) "string"
288: bool(true)
289: array(1) {
290: [0]=>
291: string(2) "10"
292: }
293: string(5) "array"
294: -- Iteration 14 --
295: string(6) "string"
296: bool(true)
297: array(1) {
298: [0]=>
299: string(8) "10string"
300: }
301: string(5) "array"
302: -- Iteration 15 --
303: string(6) "string"
304: bool(true)
305: array(1) {
306: [0]=>
307: string(8) "10string"
308: }
309: string(5) "array"
310: -- Iteration 16 --
311: string(6) "string"
312: bool(true)
313: array(1) {
314: [0]=>
315: string(1) "1"
316: }
317: string(5) "array"
318: -- Iteration 17 --
319: string(6) "string"
320: bool(true)
321: array(1) {
322: [0]=>
323: string(2) "-1"
324: }
325: string(5) "array"
326: -- Iteration 18 --
327: string(6) "string"
328: bool(true)
329: array(1) {
330: [0]=>
331: string(3) "1e2"
332: }
333: string(5) "array"
334: -- Iteration 19 --
335: string(6) "string"
336: bool(true)
337: array(1) {
338: [0]=>
339: string(2) " 1"
340: }
341: string(5) "array"
342: -- Iteration 20 --
343: string(6) "string"
344: bool(true)
345: array(1) {
346: [0]=>
347: string(22) "2974394749328742328432"
348: }
349: string(5) "array"
350: -- Iteration 21 --
351: string(6) "string"
352: bool(true)
353: array(1) {
354: [0]=>
355: string(5) "-1e-2"
356: }
357: string(5) "array"
358: -- Iteration 22 --
359: string(6) "string"
360: bool(true)
361: array(1) {
362: [0]=>
363: string(1) "1"
364: }
365: string(5) "array"
366: -- Iteration 23 --
367: string(6) "string"
368: bool(true)
369: array(1) {
370: [0]=>
371: string(2) "-1"
372: }
373: string(5) "array"
374: -- Iteration 24 --
375: string(6) "string"
376: bool(true)
377: array(1) {
378: [0]=>
379: string(3) "1e2"
380: }
381: string(5) "array"
382: -- Iteration 25 --
383: string(6) "string"
384: bool(true)
385: array(1) {
386: [0]=>
387: string(2) " 1"
388: }
389: string(5) "array"
390: -- Iteration 26 --
391: string(6) "string"
392: bool(true)
393: array(1) {
394: [0]=>
395: string(22) "2974394749328742328432"
396: }
397: string(5) "array"
398: -- Iteration 27 --
399: string(6) "string"
400: bool(true)
401: array(1) {
402: [0]=>
403: string(5) "-1e-2"
404: }
405: string(5) "array"
406: -- Iteration 28 --
407: string(6) "string"
408: bool(true)
409: array(1) {
410: [0]=>
411: string(4) "0xff"
412: }
413: string(5) "array"
414: -- Iteration 29 --
415: string(6) "string"
416: bool(true)
417: array(1) {
418: [0]=>
419: string(4) "0x55"
420: }
421: string(5) "array"
422: -- Iteration 30 --
423: string(6) "string"
424: bool(true)
425: array(1) {
426: [0]=>
427: string(5) "0XA55"
428: }
429: string(5) "array"
430: -- Iteration 31 --
431: string(6) "string"
432: bool(true)
433: array(1) {
434: [0]=>
435: string(5) "0X123"
436: }
437: string(5) "array"
438: -- Iteration 32 --
439: string(6) "string"
440: bool(true)
441: array(1) {
442: [0]=>
443: string(4) "0123"
444: }
445: string(5) "array"
446: -- Iteration 33 --
447: string(6) "string"
448: bool(true)
449: array(1) {
450: [0]=>
451: string(4) "0123"
452: }
453: string(5) "array"
454: -- Iteration 34 --
455: string(6) "string"
456: bool(true)
457: array(1) {
458: [0]=>
459: string(5) "-0123"
460: }
461: string(5) "array"
462: -- Iteration 35 --
463: string(6) "string"
464: bool(true)
465: array(1) {
466: [0]=>
467: string(5) "+0123"
468: }
469: string(5) "array"
470: -- Iteration 36 --
471: string(6) "string"
472: bool(true)
473: array(1) {
474: [0]=>
475: string(5) "-0123"
476: }
477: string(5) "array"
478: -- Iteration 37 --
479: string(6) "string"
480: bool(true)
481: array(1) {
482: [0]=>
483: string(5) "+0123"
484: }
485: string(5) "array"
486: -- Iteration 38 --
487: string(6) "string"
488: bool(true)
489: array(1) {
490: [0]=>
491: string(8) "-0x80001"
492: }
493: string(5) "array"
494: -- Iteration 39 --
495: string(6) "string"
496: bool(true)
497: array(1) {
498: [0]=>
499: string(8) "+0x80001"
500: }
501: string(5) "array"
502: -- Iteration 40 --
503: string(6) "string"
504: bool(true)
505: array(1) {
506: [0]=>
507: string(10) "-0x80001.5"
508: }
509: string(5) "array"
510: -- Iteration 41 --
511: string(6) "string"
512: bool(true)
513: array(1) {
514: [0]=>
515: string(9) "0x80001.5"
516: }
517: string(5) "array"
518: -- Iteration 42 --
519: string(6) "string"
520: bool(true)
521: array(1) {
522: [0]=>
523: string(12) "@$%#$%^$%^&^"
524: }
525: string(5) "array"
526: -- Iteration 43 --
527: string(5) "array"
528: bool(true)
529: array(0) {
530: }
531: string(5) "array"
532: -- Iteration 44 --
533: string(5) "array"
534: bool(true)
535: array(1) {
536: [0]=>
537: NULL
538: }
539: string(5) "array"
540: -- Iteration 45 --
541: string(5) "array"
542: bool(true)
543: array(4) {
544: [0]=>
545: int(1)
546: [1]=>
547: int(2)
548: [2]=>
549: int(3)
550: [3]=>
551: int(4)
552: }
553: string(5) "array"
554: -- Iteration 46 --
555: string(5) "array"
556: bool(true)
557: array(4) {
558: [1]=>
559: string(3) "one"
560: [2]=>
561: string(3) "two"
562: [3]=>
563: string(5) "three"
564: ["four"]=>
565: int(4)
566: }
567: string(5) "array"
568: -- Iteration 47 --
569: string(5) "array"
570: bool(true)
571: array(3) {
572: [0]=>
573: float(1.5)
574: [1]=>
575: float(2.4)
576: [2]=>
577: float(6500000)
578: }
579: string(5) "array"
580: -- Iteration 48 --
581: string(6) "double"
582: bool(true)
583: array(1) {
584: [0]=>
585: float(-2147483648)
586: }
587: string(5) "array"
588: -- Iteration 49 --
589: string(7) "integer"
590: bool(true)
591: array(1) {
592: [0]=>
593: int(2147483647)
594: }
595: string(5) "array"
596: -- Iteration 50 --
597: string(6) "double"
598: bool(true)
599: array(1) {
600: [0]=>
601: float(2147483649)
602: }
603: string(5) "array"
604: -- Iteration 51 --
605: string(6) "double"
606: bool(true)
607: array(1) {
608: [0]=>
609: float(1232147483649)
610: }
611: string(5) "array"
612: -- Iteration 52 --
613: string(7) "integer"
614: bool(true)
615: array(1) {
616: [0]=>
617: int(85)
618: }
619: string(5) "array"
620: -- Iteration 53 --
621: string(6) "double"
622: bool(true)
623: array(1) {
624: [0]=>
625: float(1058513956921)
626: }
627: string(5) "array"
628: -- Iteration 54 --
629: string(7) "integer"
630: bool(true)
631: array(1) {
632: [0]=>
633: int(-21903)
634: }
635: string(5) "array"
636: -- Iteration 55 --
637: string(7) "integer"
638: bool(true)
639: array(1) {
640: [0]=>
641: int(365)
642: }
643: string(5) "array"
644: -- Iteration 56 --
645: string(7) "integer"
646: bool(true)
647: array(1) {
648: [0]=>
649: int(-365)
650: }
651: string(5) "array"
652: -- Iteration 57 --
653: string(6) "double"
654: bool(true)
655: array(1) {
656: [0]=>
657: float(80561044571754)
658: }
659: string(5) "array"
660: -- Iteration 58 --
661: string(6) "double"
662: bool(true)
663: array(1) {
664: [0]=>
665: float(100000)
666: }
667: string(5) "array"
668: -- Iteration 59 --
669: string(6) "double"
670: bool(true)
671: array(1) {
672: [0]=>
673: float(-100000)
674: }
675: string(5) "array"
676: -- Iteration 60 --
677: string(6) "double"
678: bool(true)
679: array(1) {
680: [0]=>
681: float(100000)
682: }
683: string(5) "array"
684: -- Iteration 61 --
685: string(6) "double"
686: bool(true)
687: array(1) {
688: [0]=>
689: float(-100000)
690: }
691: string(5) "array"
692: -- Iteration 62 --
693: string(6) "double"
694: bool(true)
695: array(1) {
696: [0]=>
697: float(-1.5)
698: }
699: string(5) "array"
700: -- Iteration 63 --
701: string(6) "double"
702: bool(true)
703: array(1) {
704: [0]=>
705: float(0.5)
706: }
707: string(5) "array"
708: -- Iteration 64 --
709: string(6) "double"
710: bool(true)
711: array(1) {
712: [0]=>
713: float(-0.5)
714: }
715: string(5) "array"
716: -- Iteration 65 --
717: string(6) "double"
718: bool(true)
719: array(1) {
720: [0]=>
721: float(500000)
722: }
723: string(5) "array"
724: -- Iteration 66 --
725: string(6) "double"
726: bool(true)
727: array(1) {
728: [0]=>
729: float(-500000)
730: }
731: string(5) "array"
732: -- Iteration 67 --
733: string(6) "double"
734: bool(true)
735: array(1) {
736: [0]=>
737: float(-5.0E-7)
738: }
739: string(5) "array"
740: -- Iteration 68 --
741: string(6) "double"
742: bool(true)
743: array(1) {
744: [0]=>
745: float(500000)
746: }
747: string(5) "array"
748: -- Iteration 69 --
749: string(6) "double"
750: bool(true)
751: array(1) {
752: [0]=>
753: float(-500000)
754: }
755: string(5) "array"
756: -- Iteration 70 --
757: string(6) "double"
758: bool(true)
759: array(1) {
760: [0]=>
761: float(512000)
762: }
763: string(5) "array"
764: -- Iteration 71 --
765: string(6) "double"
766: bool(true)
767: array(1) {
768: [0]=>
769: float(-512000)
770: }
771: string(5) "array"
772: -- Iteration 72 --
773: string(6) "double"
774: bool(true)
775: array(1) {
776: [0]=>
777: float(5.12E-7)
778: }
779: string(5) "array"
780: -- Iteration 73 --
781: string(6) "double"
782: bool(true)
783: array(1) {
784: [0]=>
785: float(5.12E-7)
786: }
787: string(5) "array"
788: -- Iteration 74 --
789: string(6) "double"
790: bool(true)
791: array(1) {
792: [0]=>
793: float(512000)
794: }
795: string(5) "array"
796: -- Iteration 75 --
797: string(6) "double"
798: bool(true)
799: array(1) {
800: [0]=>
801: float(-512000)
802: }
803: string(5) "array"
804: -- Iteration 76 --
805: string(6) "object"
806: bool(true)
807: array(2) {
808: ["x"]=>
809: NULL
810: ["y"]=>
811: NULL
812: }
813: string(5) "array"
814: -- Iteration 77 --
815: string(6) "object"
816: bool(true)
817: array(2) {
818: ["x"]=>
819: float(2.5)
820: ["y"]=>
821: float(40.5)
822: }
823: string(5) "array"
824: -- Iteration 78 --
825: string(6) "object"
826: bool(true)
827: array(2) {
828: ["x"]=>
829: int(0)
830: ["y"]=>
831: int(0)
832: }
833: string(5) "array"
834: -- Iteration 79 --
835: string(4) "NULL"
836: bool(true)
837: array(0) {
838: }
839: string(5) "array"
840: -- Iteration 80 --
841: string(4) "NULL"
842: bool(true)
843: array(0) {
844: }
845: string(5) "array"
846: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>