Annotation of embedaddon/php/ext/standard/tests/general_functions/gettype_settype_variation8.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 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>