1--TEST--
2Constant Expressions
3--FILE--
4<?php
5const T_1 = 1 << 1;
6const T_2 = 1 / 2;
7const T_3 = 1.5 + 1.5;
8const T_4 = "foo" . "bar";
9const T_5 = (1.5 + 1.5) * 2;
10const T_6 = "foo" . 2 . 3 . 4.0;
11const T_7 = __LINE__;
12const T_8 = <<<ENDOFSTRING
13This is a test string
14ENDOFSTRING;
15const T_9 = ~-1;
16const T_10 = (-1?:1) + (0?2:3);
17const T_11 = 1 && 0;
18const T_12 = 1 and 1;
19const T_13 = 0 || 0;
20const T_14 = 1 or 0;
21const T_15 = 1 xor 1;
22const T_16 = 1 xor 0;
23const T_17 = 1 < 0;
24const T_18 = 0 <= 0;
25const T_19 = 1 > 0;
26const T_20 = 1 >= 0;
27const T_21 = 1 === 1;
28const T_22 = 1 !== 1;
29const T_23 = 0 != "0";
30const T_24 = 1 == "1";
31
32// Test order of operations
33const T_25 = 1 + 2 * 3;
34
35// Test for memory leaks
36const T_26 = "1" + 2 + "3";
37
38// Allow T_POW
39const T_27 = 2 ** 3;
40
41var_dump(T_1);
42var_dump(T_2);
43var_dump(T_3);
44var_dump(T_4);
45var_dump(T_5);
46var_dump(T_6);
47var_dump(T_7);
48var_dump(T_8);
49var_dump(T_9);
50var_dump(T_10);
51var_dump(T_11);
52var_dump(T_12);
53var_dump(T_13);
54var_dump(T_14);
55var_dump(T_15);
56var_dump(T_16);
57var_dump(T_17);
58var_dump(T_18);
59var_dump(T_19);
60var_dump(T_20);
61var_dump(T_21);
62var_dump(T_22);
63var_dump(T_23);
64var_dump(T_24);
65var_dump(T_25);
66var_dump(T_26);
67var_dump(T_27);
68?>
69--EXPECT--
70int(2)
71float(0.5)
72float(3)
73string(6) "foobar"
74float(6)
75string(6) "foo234"
76int(8)
77string(21) "This is a test string"
78int(0)
79int(2)
80bool(false)
81bool(true)
82bool(false)
83bool(true)
84bool(false)
85bool(true)
86bool(false)
87bool(true)
88bool(true)
89bool(true)
90bool(true)
91bool(false)
92bool(false)
93bool(true)
94int(7)
95int(6)
96int(8)
97