Changeset 747 in svn


Ignore:
Timestamp:
2011-04-14T07:30:54+02:00 (4 years ago)
Author:
Xuefer
Message:

adds more code for decompile testing

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/decompilesample.php

    r743 r747  
    11<?php
    22
    3 class ClassName
     3abstract class ClassName
    44{
    55    /** doc */
     
    2727
    2828    /** doc */
     29    const CONST_VALUE = 'A constant value';
     30
     31    /** doc */
    2932    public function __construct($a, $b)
    3033    {
    31     }
     34        echo CONST_VALUE;
     35        echo $this::CONST_VALUE;
     36        echo $a::CONST_VALUE;
     37        echo ClassName::CONST_VALUE;
     38    }
     39
     40    /** doc */
     41    abstract function abastractMethod();
    3242
    3343    /** doc */
     
    6575}
    6676
     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
    67116echo str_replace(array('a' => 'a', 'b' => 'c'), 'b');
     117
     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}
    68184
    69185switch ($switch) {
     
    81197}
    82198
     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
    83234?>
Note: See TracChangeset for help on using the changeset viewer.