source: trunk/decompilesample.php @ 748

Last change on this file since 748 was 748, checked in by moo, 3 years ago

decompiler: make it easier to be consistent with output

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