source: trunk/decompilesample.php @ 747

Last change on this file since 747 was 747, checked in by moo, 4 years ago

adds more code for decompile testing

  • Property svn:eol-style set to native
File size: 3.3 KB
RevLine 
[734]1<?php
2
[747]3abstract class ClassName
[734]4{
[736]5    /** doc */
[734]6    static public $static = array(
7        array('array'),
8        'str'
9        );
[736]10    /** doc */
[734]11    static public $public_static = array(2, 'str');
[736]12    /** doc */
[734]13    static private $private_static = array(2, 'str');
[736]14    /** doc */
[734]15    static protected $protected_static = array(2, 'str');
[736]16    /** doc */
[734]17    public $property = array(
18        array('array'),
19        'str'
20        );
[736]21    /** doc */
[734]22    public $public_property = array(2, 'str');
[736]23    /** doc */
[734]24    private $private_property = array(2, 'str');
[736]25    /** doc */
[734]26    protected $protected_property = array(2, 'str');
27
[736]28    /** doc */
[747]29    const CONST_VALUE = 'A constant value';
30
31    /** doc */
[734]32    public function __construct($a, $b)
33    {
[747]34        echo CONST_VALUE;
35        echo $this::CONST_VALUE;
36        echo $a::CONST_VALUE;
37        echo ClassName::CONST_VALUE;
[734]38    }
39
[736]40    /** doc */
[747]41    abstract function abastractMethod();
42
43    /** doc */
[736]44    public function method(array $a = NULL, $b = NULL)
[734]45    {
46    }
47
[736]48    /** doc */
49    public function publicMethod(ClassName $a = NULL, $b = 2)
[734]50    {
51    }
52
[736]53    /** doc */
54    protected function protectedMethod(ClassName $a, $b = array(
55        array('array')
56        ))
[734]57    {
[737]58        $runtimeArray = array('1');
59        $runtimeArray2 = array(
60            '1',
61            array()
62            );
63        $runtimeArray3 = array(
64            'a' => '1',
65            2   => array()
66            );
[734]67        return 'protected';
68    }
69
[736]70    /** doc */
71    private function privateMethod(ClassName $a, $b = NULL)
[734]72    {
73        return 'private';
74    }
75}
76
[747]77interface IInterface
78{
79    public function nothing();
80}
81
82final class Child extends ClassName implements IInterface
83{
84    public function __construct()
85    {
86        parent::__construct();
87        echo __CLASS__;
88        echo __METHOD__;
89    }
90
91    function __set($name, $value)
92    {
93    }
94
95    function __get($name)
96    {
97    }
98
99    function __isset($name)
100    {
101    }
102
103    function __unset($name)
104    {
105    }
106
107    function __sleep()
108    {
109    }
110
111    function __wakeup()
112    {
113    }
114}
115
[742]116echo str_replace(array('a' => 'a', 'b' => 'c'), 'b');
[734]117
[747]118$object = new ClassName;
119$cloned = clone $object;
120
121$a = 1;
122$a = $b + $c;
123$a = $b + 1;
124$a = 1 + $b;
125$a = $b - $c;
126$a = $b * $c;
127$a = $b / $c;
128$a = $b % $c;
129$a = $b . $c;
130$a = $b = $c;
131$a = $b & $c;
132$a = $b | $c;
133$a = $b ^ $c;
134$a = ~$b;
135$a = $b >> $c;
136$a = $b >> $c;
137$a = $b == $c;
138$a = $b === $c;
139$a = $b != $c;
140$a = $b <> $c;
141$a = $b < $c;
142$a = $b <= $c;
143$a = $b > $c;
144$a = $b <= $c;
145$a = $b++;
146$a = ++$b;
147$a = $b--;
148$a = --$b;
149$a = $b and $c;
150$a = $b or $c;
151$a = $b xor $c;
152$a = !$b;
153$a = $b && $c;
154$a = $b || $c;
155$a = $b instanceof ClassName;
156
157if ($a) {
158    echo 'if ($a)';
159}
160else if ($b) {
161    echo 'else if ($b)';
162}
163else {
164    echo 'else';
165}
166
167while (false) {
168    echo 'while';
169}
170
171do {
172    echo 'do/while';
173} while (false);
174
175for ($i = 1; $i < 10; ++$i) {
176    echo $i;
177    break;
178}
179
180foreach ($array as $key => $value) {
181    echo "$key = $value\n";
182    continue;
183}
184
[743]185switch ($switch) {
186case 'case1':
187    echo 'case1';
188    break;
189
190case 'case2':
191    echo 'case2';
192    break;
193
194default:
195    echo 'default';
196    break;
197}
198
[747]199declare (ticks=1) {
200    echo 1;
201    echo 2;
202}
203
204require 'require.php';
205require_once 'require_once.php';
206include 'include.php';
207include_once 'include_once.php';
208
209goto a;
210echo 'foo';
211
212a:
213echo 'bar';
214
215echo preg_replace_callback('~-([a-z])~', function ($match) {
216        return strtoupper($match[1]);
217}, 'hello-world');
218
219$greet = function($name)
220{
221    printf("Hello %s\r\n", $name);
222};
223$greet('World');
224$greet('PHP');
225
226$total = 0.00;
227
228$callback = function ($quantity, $product) use ($tax, &$total)
229{
230    $pricePerItem = constant(__CLASS__ . "::PRICE_" . strtoupper($product));
231    $total += ($pricePerItem * $quantity) * ($tax + 1.0);
232};
233
[734]234?>
Note: See TracBrowser for help on using the repository browser.