source: trunk/mod_disassembler/sample4.php @ 1331

Last change on this file since 1331 was 1331, checked in by moo, 17 months ago

separate PHP 4/5 decompile sample

  • Property svn:eol-style set to native
File size: 4.8 KB
Line 
1<?php
2
3class classname
4{
5    var $property = array(
6        array('array'),
7        'str'
8        );
9
10    function __construct($a, $b)
11    {
12        echo CONST_VALUE;
13        empty($obj->objProp);
14        isset($obj->objProp);
15        $obj->objProp = 1;
16        echo $obj->objProp;
17        empty($this->thisProp);
18        isset($this->thisProp);
19        $this->thisProp = 1;
20        echo $this->thisProp;
21        unset($obj->array['index']);
22        unset($this->array['index']);
23        empty($_GET['get']);
24        isset($_GET['get']);
25        unset($_GET['get']);
26        $_GET['get'] = 1;
27        echo $_GET['get'];
28        isset($GLOBALS['global']);
29        empty($GLOBALS['global']);
30        unset($GLOBALS['global']);
31        $GLOBALS['global'] = 1;
32        echo $GLOBALS['global'];
33        empty($array['index']);
34        isset($array['index']);
35        unset($array['index']);
36        $array['index'] = 1;
37        echo $array['index'];
38        empty($array['index']->indexProp);
39        isset($array['index']->indexProp);
40        $array['index']->indexProp = 1;
41        echo $array['index']->indexProp;
42        empty($GLOBALS['var']->indexProp);
43        isset($GLOBALS['var']->indexProp);
44        $GLOBALS['var']->indexProp = 1;
45        echo $GLOBALS['var']->indexProp;
46    }
47
48    function method($a = NULL, $b = NULL)
49    {
50        $runtimeArray = array('1');
51        $runtimeArray2 = array(
52            '1',
53            array()
54            );
55        $runtimeArray3 = array(
56            'a' => '1',
57            2   => array()
58            );
59        return 'm';
60    }
61}
62
63class child extends classname
64{
65    function __construct()
66    {
67        parent::__construct();
68        ClassName::__construct();
69        echo __CLASS__;
70        echo __METHOD__;
71        echo __FUNCTION__;
72        new Exception();
73        $this->methodCall();
74    }
75
76    function __destruct()
77    {
78        parent::__destruct();
79        functioncall();
80    }
81
82    function __tostring()
83    {
84        parent::__toString();
85    }
86
87    function __set($name, $value)
88    {
89    }
90
91    function __get($name)
92    {
93    }
94
95    function __isset($name)
96    {
97    }
98
99    function __unset($name)
100    {
101    }
102
103    function __sleep()
104    {
105    }
106
107    function __wakeup()
108    {
109    }
110
111    function __clone()
112    {
113        return array();
114    }
115}
116
117function f1($f)
118{
119    echo __FUNCTION__;
120    echo $f;
121}
122
123if ($late) {
124    class LateBindingClass
125    {
126        function __construct()
127        {
128        }
129    }
130
131    function lateBindingFunction($arg)
132    {
133        echo 'lateFunction';
134        return new lateBindingFunction();
135    }
136}
137
138echo "\r\n";
139echo "\r";
140echo "\n";
141echo str_replace(array('a' => 'a', 'b' => 'c'), 'b');
142$object = new ClassName();
143$object = new $className();
144$a = 1;
145$a = $b + $c;
146$a = $b + 1;
147$a = 1 + $b;
148$a = $b - $c;
149$a = $b * $c;
150$a = $b / $c;
151$a = $b % $c;
152$a = $b . $c;
153$a = $b = $c;
154$a = $b & $c;
155$a = $b | $c;
156$a = $b ^ $c;
157$a = ~$b;
158$a = -$b;
159$a = +$b;
160$a = $b >> $c;
161$a = $b >> $c;
162$a = $b == $c;
163$a = $b === $c;
164$a = $b != $c;
165$a = $b < $c;
166$a = $b <= $c;
167$a = $b <= $c;
168$a = $b++;
169$a = ++$b;
170$a = $obj->b++;
171$a = ++$obj->b;
172$a = $b--;
173$a = --$b;
174$a = $obj->b--;
175$a = --$obj->b;
176$a = !$b;
177$a = $b === $c;
178$a = $b !== $c;
179$a = $b << 2;
180$a = $b >> 3;
181$a += $b;
182$a -= $b;
183$a *= $b;
184$a /= $b;
185$a <<= $b;
186$a >>= $b;
187$a &= $b;
188$a |= $b;
189$a .= $b;
190$a %= $b;
191$a ^= $b;
192$a = 'a' . 'b';
193$a = 'a' . 'abc';
194@f1();
195print('1');
196$a = $array['index'];
197$a = $object->prop;
198$a = $this->prop;
199$array['index'] = 1;
200$object->prop = 1;
201$this->prop = 1;
202$a = isset($b);
203$a = empty($b);
204unset($b);
205$a = isset($array['index']);
206$a = empty($array['index']);
207unset($array['index']);
208$a = isset($object->prop);
209$a = empty($object->prop);
210$a = isset($this->prop);
211$a = empty($this->prop);
212$a = (int) $b;
213$a = (double) $b;
214$a = (string) $b;
215$a = (array) $b;
216$a = (object) $b;
217$a = (bool) $b;
218$a = (unset) $b;
219$a = (array) $b;
220$a = (object) $b;
221$a = ($b ? $c : $d);
222$a = (f1() ? f2() : f3());
223($a = $b) xor $c;
224($a = $b) and $c;
225($a = $b) or $c;
226$a = $b && $c;
227$a = $b || $c;
228
229if (if_()) {
230    echo 'if';
231
232    if (innerif_()) {
233        echo 'if innerIf';
234    }
235}
236else if (elseif_()) {
237    echo 'else if';
238
239    if (innerif_()) {
240        echo 'if innerIf';
241    }
242}
243else {
244    if (innerif_()) {
245        echo 'if innerIf';
246    }
247
248    echo 'else';
249}
250
251while (false) {
252    echo 'while';
253}
254
255do {
256    echo 'do/while';
257} while (false);
258
259$i = 1;
260
261for (; $i < 10; ++$i) {
262    echo $i;
263    break;
264}
265
266foreach ($array as $value) {
267    foreach ($value as $key => $value) {
268        echo $key . ' = ' . $value . "\n";
269        break 2;
270        continue;
271    }
272}
273
274switch ($normalSwitch) {
275case 'case1':
276    echo 'case1';
277
278    switch ($nestedSwitch) {
279    case 1:
280    }
281
282    break;
283
284case 'case2':
285    echo 'case2';
286    break;
287
288default:
289    switch ($nestedSwitch) {
290    case 1:
291    }
292
293    echo 'default';
294    break;
295}
296
297switch ($switchWithoutDefault) {
298case 'case1':
299    echo 'case1';
300    break;
301
302case 'case2':
303    echo 'case2';
304    break;
305}
306
307switch ($switchWithMiddleDefault) {
308case 'case1':
309    echo 'case1';
310    break;
311
312default:
313    echo 'default';
314    break;
315
316case 'case2':
317    echo 'case2';
318    break;
319}
320
321switch ($switchWithInitialDefault) {
322default:
323    echo 'default';
324    break;
325
326case 'case1':
327    echo 'case1';
328    break;
329
330case 'case2':
331    echo 'case2';
332    break;
333}
334
335switch (emptyswitch()) {
336}
337
338switch (emptyswitch()) {
339default:
340}
341
342declare (ticks=1) {
343    echo 1;
344}
345
346while (1) {
347    declare (ticks=1) {
348        echo 2;
349    }
350}
351
352require 'require.php';
353require_once 'require_once.php';
354include 'include.php';
355include_once 'include_once.php';
356echo __FILE__;
357echo __LINE__;
358exit();
359
360?>
Note: See TracBrowser for help on using the repository browser.