diff options
Diffstat (limited to 'ext/standard/tests/general_functions/gettype_settype_variation7.phpt')
-rw-r--r-- | ext/standard/tests/general_functions/gettype_settype_variation7.phpt | 844 |
1 files changed, 844 insertions, 0 deletions
diff --git a/ext/standard/tests/general_functions/gettype_settype_variation7.phpt b/ext/standard/tests/general_functions/gettype_settype_variation7.phpt new file mode 100644 index 0000000..2da7bb2 --- /dev/null +++ b/ext/standard/tests/general_functions/gettype_settype_variation7.phpt @@ -0,0 +1,844 @@ +--TEST-- +Test gettype() & settype() functions : usage variations +--SKIPIF-- +<?php +if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only"); +?> +--INI-- +precision=14 +--FILE-- +<?php +/* Prototype: string gettype ( mixed $var ); + Description: Returns the type of the PHP variable var + + Prototype: bool settype ( mixed &$var, string $type ); + Description: Set the type of variable var to type +*/ + +/* Test usage variation of gettype() and settype() functions: + settype() to object type. + Set type of the data to "object" and verify using gettype + Following are performed in the listed sequence: + get the current type of the variable + set the type of the variable to object type + dump the variable to see its new data + get the new type of the variable +*/ + +/* function to handle catchable errors */ +function foo($errno, $errstr, $errfile, $errline) { +// var_dump($errstr); + // print error no and error string + echo "$errno: $errstr\n"; +} +//set the error handler, this is required as +// settype() would fail with catachable fatal error +set_error_handler("foo"); + +$var1 = "another string"; +$var2 = array(2,3,4); + +// a variable which is unset +$unset_var = 10.5; +unset( $unset_var ); + +class point +{ + var $x; + var $y; + + function point($x, $y) { + $this->x = $x; + $this->y = $y; + } + + function __toString() { + return "ObjectPoint"; + } +} + +$var_values = array ( + /* nulls */ + null, + + /* boolean */ + FALSE, + TRUE, + true, + + /* strings */ + "\xFF", + "\x66", + "\0123", + "", + '', + " ", + ' ', + /* numerics in the form of string */ + '10', + "10", + "10string", + '10string', + "1", + "-1", + "1e2", + " 1", + "2974394749328742328432", + "-1e-2", + '1', + '-1', + '1e2', + ' 1', + '2974394749328742328432', + '-1e-2', + "0xff", + '0x55', + '0XA55', + '0X123', + "0123", + '0123', + "-0123", + "+0123", + '-0123', + '+0123', + "-0x80001", // invalid numerics as its prefix with sign or have decimal points + "+0x80001", + "-0x80001.5", + "0x80001.5", + "@$%#$%^$%^&^", + + /* arrays */ + array(), + array(NULL), + array(1,2,3,4), + array(1 => "one", 2 => "two", "3" => "three", "four" => 4), + array(1.5, 2.4, 6.5e6), + + /* integers */ + -2147483648, // max -ne int value + 2147483647, + 2147483649, + 1232147483649, + 0x55, + 0xF674593039, // a hex value > than max int + -0X558F, + 0555, + -0555, + 02224242434343152, // an octal value > than max int + + /* floats */ + 1e5, + -1e5, + 1E5, + -1E5, + -1.5, + .5, + -.5, + .5e6, + -.5e6, + -.5e-6, + .5e+6, + -.5e+6, + .512E6, + -.512E6, + .512E-6, + +.512E-6, + .512E+6, + -.512E+6, + + new point(NULL, NULL), + new point(2.5, 40.5), + new point(0, 0), + + /* undefined/unset vars */ + $unset_var, + $undef_var +); + +/* test conversion to object type */ +$type = "object"; + +echo "\n*** Testing gettype() & settype() functions : usage variations ***\n"; +echo "\n-- Setting type of data to $type --\n"; +$loop_count = 1; +foreach ($var_values as $var) { + echo "-- Iteration $loop_count --\n"; $loop_count++; + + // get the current data type + var_dump( gettype($var) ); + + // convert it to null + var_dump( settype($var, $type) ); + + // dump the converted data + var_dump( $var ); + + // check the new type after conversion + var_dump( gettype($var) ); +} + +echo "Done\n"; +?> +--EXPECTF-- +8: Undefined variable: unset_var +8: Undefined variable: undef_var + +*** Testing gettype() & settype() functions : usage variations *** + +-- Setting type of data to object -- +-- Iteration 1 -- +string(4) "NULL" +bool(true) +object(stdClass)#4 (0) { +} +string(6) "object" +-- Iteration 2 -- +string(7) "boolean" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + bool(false) +} +string(6) "object" +-- Iteration 3 -- +string(7) "boolean" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + bool(true) +} +string(6) "object" +-- Iteration 4 -- +string(7) "boolean" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + bool(true) +} +string(6) "object" +-- Iteration 5 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(1) "ÿ" +} +string(6) "object" +-- Iteration 6 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(1) "f" +} +string(6) "object" +-- Iteration 7 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(2) " +3" +} +string(6) "object" +-- Iteration 8 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(0) "" +} +string(6) "object" +-- Iteration 9 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(0) "" +} +string(6) "object" +-- Iteration 10 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(1) " " +} +string(6) "object" +-- Iteration 11 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(1) " " +} +string(6) "object" +-- Iteration 12 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(2) "10" +} +string(6) "object" +-- Iteration 13 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(2) "10" +} +string(6) "object" +-- Iteration 14 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(8) "10string" +} +string(6) "object" +-- Iteration 15 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(8) "10string" +} +string(6) "object" +-- Iteration 16 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(1) "1" +} +string(6) "object" +-- Iteration 17 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(2) "-1" +} +string(6) "object" +-- Iteration 18 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(3) "1e2" +} +string(6) "object" +-- Iteration 19 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(2) " 1" +} +string(6) "object" +-- Iteration 20 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(22) "2974394749328742328432" +} +string(6) "object" +-- Iteration 21 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(5) "-1e-2" +} +string(6) "object" +-- Iteration 22 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(1) "1" +} +string(6) "object" +-- Iteration 23 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(2) "-1" +} +string(6) "object" +-- Iteration 24 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(3) "1e2" +} +string(6) "object" +-- Iteration 25 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(2) " 1" +} +string(6) "object" +-- Iteration 26 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(22) "2974394749328742328432" +} +string(6) "object" +-- Iteration 27 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(5) "-1e-2" +} +string(6) "object" +-- Iteration 28 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(4) "0xff" +} +string(6) "object" +-- Iteration 29 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(4) "0x55" +} +string(6) "object" +-- Iteration 30 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(5) "0XA55" +} +string(6) "object" +-- Iteration 31 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(5) "0X123" +} +string(6) "object" +-- Iteration 32 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(4) "0123" +} +string(6) "object" +-- Iteration 33 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(4) "0123" +} +string(6) "object" +-- Iteration 34 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(5) "-0123" +} +string(6) "object" +-- Iteration 35 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(5) "+0123" +} +string(6) "object" +-- Iteration 36 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(5) "-0123" +} +string(6) "object" +-- Iteration 37 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(5) "+0123" +} +string(6) "object" +-- Iteration 38 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(8) "-0x80001" +} +string(6) "object" +-- Iteration 39 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(8) "+0x80001" +} +string(6) "object" +-- Iteration 40 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(10) "-0x80001.5" +} +string(6) "object" +-- Iteration 41 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(9) "0x80001.5" +} +string(6) "object" +-- Iteration 42 -- +string(6) "string" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + string(12) "@$%#$%^$%^&^" +} +string(6) "object" +-- Iteration 43 -- +string(5) "array" +bool(true) +object(stdClass)#4 (0) { +} +string(6) "object" +-- Iteration 44 -- +string(5) "array" +bool(true) +object(stdClass)#4 (1) { + [0]=> + NULL +} +string(6) "object" +-- Iteration 45 -- +string(5) "array" +bool(true) +object(stdClass)#4 (4) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + [3]=> + int(4) +} +string(6) "object" +-- Iteration 46 -- +string(5) "array" +bool(true) +object(stdClass)#4 (4) { + [1]=> + string(3) "one" + [2]=> + string(3) "two" + [3]=> + string(5) "three" + ["four"]=> + int(4) +} +string(6) "object" +-- Iteration 47 -- +string(5) "array" +bool(true) +object(stdClass)#4 (3) { + [0]=> + float(1.5) + [1]=> + float(2.4) + [2]=> + float(6500000) +} +string(6) "object" +-- Iteration 48 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(-2147483648) +} +string(6) "object" +-- Iteration 49 -- +string(7) "integer" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + int(2147483647) +} +string(6) "object" +-- Iteration 50 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(2147483649) +} +string(6) "object" +-- Iteration 51 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(1232147483649) +} +string(6) "object" +-- Iteration 52 -- +string(7) "integer" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + int(85) +} +string(6) "object" +-- Iteration 53 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(1058513956921) +} +string(6) "object" +-- Iteration 54 -- +string(7) "integer" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + int(-21903) +} +string(6) "object" +-- Iteration 55 -- +string(7) "integer" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + int(365) +} +string(6) "object" +-- Iteration 56 -- +string(7) "integer" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + int(-365) +} +string(6) "object" +-- Iteration 57 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(80561044571754) +} +string(6) "object" +-- Iteration 58 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(100000) +} +string(6) "object" +-- Iteration 59 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(-100000) +} +string(6) "object" +-- Iteration 60 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(100000) +} +string(6) "object" +-- Iteration 61 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(-100000) +} +string(6) "object" +-- Iteration 62 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(-1.5) +} +string(6) "object" +-- Iteration 63 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(0.5) +} +string(6) "object" +-- Iteration 64 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(-0.5) +} +string(6) "object" +-- Iteration 65 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(500000) +} +string(6) "object" +-- Iteration 66 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(-500000) +} +string(6) "object" +-- Iteration 67 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(-5.0E-7) +} +string(6) "object" +-- Iteration 68 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(500000) +} +string(6) "object" +-- Iteration 69 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(-500000) +} +string(6) "object" +-- Iteration 70 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(512000) +} +string(6) "object" +-- Iteration 71 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(-512000) +} +string(6) "object" +-- Iteration 72 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(5.12E-7) +} +string(6) "object" +-- Iteration 73 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(5.12E-7) +} +string(6) "object" +-- Iteration 74 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(512000) +} +string(6) "object" +-- Iteration 75 -- +string(6) "double" +bool(true) +object(stdClass)#4 (1) { + ["scalar"]=> + float(-512000) +} +string(6) "object" +-- Iteration 76 -- +string(6) "object" +bool(true) +object(point)#1 (2) { + ["x"]=> + NULL + ["y"]=> + NULL +} +string(6) "object" +-- Iteration 77 -- +string(6) "object" +bool(true) +object(point)#2 (2) { + ["x"]=> + float(2.5) + ["y"]=> + float(40.5) +} +string(6) "object" +-- Iteration 78 -- +string(6) "object" +bool(true) +object(point)#3 (2) { + ["x"]=> + int(0) + ["y"]=> + int(0) +} +string(6) "object" +-- Iteration 79 -- +string(4) "NULL" +bool(true) +object(stdClass)#4 (0) { +} +string(6) "object" +-- Iteration 80 -- +string(4) "NULL" +bool(true) +object(stdClass)#4 (0) { +} +string(6) "object" +Done |