Changeset 1327 in svn


Ignore:
Timestamp:
2013-07-16T05:24:01+02:00 (23 months ago)
Author:
Xuefer
Message:

undone code removal mistake

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/mod_disassembler/sample.php

    r1322 r1327  
    11<?php
    22
    3 $a = new A();
    4 new B();
    5 a();
    6 $a = a();
     3/* >= PHP 5.3
     4namespace ns;
     5// */
     6
     7abstract class ClassName
     8{
     9    const CONST_VALUE = 'A constant value';
     10
     11    /** doc */
     12    static public $static = array(
     13        array('array'),
     14        'str'
     15        );
     16    /** doc */
     17    static public $public_static = array(2, 'str');
     18    /** doc */
     19    static private $private_static = array(2, 'str');
     20    /** doc */
     21    static protected $protected_static = array(2, 'str');
     22    /** doc */
     23    public $property = array(
     24        array('array'),
     25        'str'
     26        );
     27    /** doc */
     28    public $public_property = array(2, 'str');
     29    /** doc */
     30    private $private_property = array(2, 'str');
     31    /** doc */
     32    protected $protected_property = array(2, 'str');
     33
     34    /** doc */
     35    public function __construct($a, $b)
     36    {
     37        echo CONST_VALUE;
     38        echo ClassName::CONST_VALUE;
     39        empty(ClassName::$classProp);
     40        isset(ClassName::$classProp);
     41        unset(ClassName::$classProp);
     42        ClassName::$classProp = 1;
     43        echo ClassName::$classProp;
     44        empty($obj->objProp);
     45        isset($obj->objProp);
     46        unset($obj->objProp);
     47        $obj->objProp = 1;
     48        echo $obj->objProp;
     49        empty($this->thisProp);
     50        isset($this->thisProp);
     51        unset($this->thisProp);
     52        $this->thisProp = 1;
     53        echo $this->thisProp;
     54        unset($array['index']->valueProp);
     55        unset($obj->array['index']);
     56        unset($this->array['index']);
     57        empty($_GET['get']);
     58        isset($_GET['get']);
     59        unset($_GET['get']);
     60        $_GET['get'] = 1;
     61        echo $_GET['get'];
     62        isset($GLOBALS['global']);
     63        empty($GLOBALS['global']);
     64        unset($GLOBALS['global']);
     65        $GLOBALS['global'] = 1;
     66        echo $GLOBALS['global'];
     67        empty($array['index']);
     68        isset($array['index']);
     69        unset($array['index']);
     70        $array['index'] = 1;
     71        echo $array['index'];
     72        empty($array['index']->indexProp);
     73        isset($array['index']->indexProp);
     74        unset($array['index']->indexProp);
     75        $array['index']->indexProp = 1;
     76        echo $array['index']->indexProp;
     77        empty($GLOBALS['var']->indexProp);
     78        isset($GLOBALS['var']->indexProp);
     79        unset($GLOBALS['var']->indexProp);
     80        $GLOBALS['var']->indexProp = 1;
     81        echo $GLOBALS['var']->indexProp;
     82    }
     83
     84    /** doc */
     85    abstract public function abastractMethod();
     86
     87    /** doc */
     88    public function method($a = NULL, $b = NULL)
     89    {
     90    }
     91
     92    /** doc */
     93    public function publicMethod(ClassName $a = NULL, $b = 2)
     94    {
     95    }
     96
     97    /** doc */
     98    protected function protectedMethod(ClassName $a, $b = array(
     99            array('array')
     100            ))
     101    {
     102        $runtimeArray = array('1');
     103        $runtimeArray2 = array(
     104            '1',
     105            array()
     106            );
     107        $runtimeArray3 = array(
     108            'a' => '1',
     109            2   => array()
     110            );
     111        return 'protected';
     112    }
     113
     114    /** doc */
     115    private function privateMethod(ClassName $a, $b = NULL)
     116    {
     117        return 'private';
     118    }
     119}
     120
     121interface IInterface
     122{
     123    public function nothing();
     124}
     125
     126function f1($f)
     127{
     128    echo __FUNCTION__;
     129    echo $f;
     130}
     131
     132final class Child extends ClassName implements IInterface
     133{
     134    public function __construct()
     135    {
     136        parent::__construct();
     137        ClassName::__construct();
     138        echo __CLASS__;
     139        echo __METHOD__;
     140        echo __FUNCTION__;
     141        throw new Exception();
     142        $this->methodCall();
     143    }
     144
     145    public function __destruct()
     146    {
     147        parent::__destruct();
     148        functionCall();
     149    }
     150
     151    static public function __callStatic($name, $args)
     152    {
     153        parent::__callStatic($name, $args);
     154    }
     155
     156    public function __toString()
     157    {
     158        parent::__toString();
     159    }
     160
     161    public function __set($name, $value)
     162    {
     163    }
     164
     165    public function __get($name)
     166    {
     167    }
     168
     169    public function __isset($name)
     170    {
     171    }
     172
     173    public function __unset($name)
     174    {
     175    }
     176
     177    public function __sleep()
     178    {
     179    }
     180
     181    public function __wakeup()
     182    {
     183    }
     184
     185    public function __clone()
     186    {
     187        return array();
     188    }
     189}
     190
     191if ($late) {
     192    class LateBindingClass
     193    {
     194        public function __construct()
     195        {
     196        }
     197    }
     198
     199    function lateBindingFunction($arg)
     200    {
     201        echo 'lateFunction';
     202        return new lateBindingFunction();
     203    }
     204}
     205
     206echo "\r\n";
     207echo "\r";
     208echo "\n";
     209echo str_replace(array('a' => 'a', 'b' => 'c'), 'b');
     210$object = new ClassName();
     211$object = new $className();
     212$result = $object instanceof ClassName;
     213$cloned = clone $object;
     214$a = 1;
     215$a = $b + $c;
     216$a = $b + 1;
     217$a = 1 + $b;
     218$a = $b - $c;
     219$a = $b * $c;
     220$a = $b / $c;
     221$a = $b % $c;
     222$a = $b . $c;
     223$a = $b = $c;
     224$a = $b & $c;
     225$a = $b | $c;
     226$a = $b ^ $c;
     227$a = ~$b;
     228$a = -$b;
     229$a = +$b;
     230$a = $b >> $c;
     231$a = $b >> $c;
     232$a = $b == $c;
     233$a = $b === $c;
     234$a = $b != $c;
     235$a = $b < $c;
     236$a = $b <= $c;
     237$a = $b <= $c;
     238$a = $b++;
     239$a = ++$b;
     240$a = $obj->b++;
     241$a = ++$obj->b;
     242$a = $b--;
     243$a = --$b;
     244$a = $obj->b--;
     245$a = --$obj->b;
     246$a = !$b;
     247$a = $b === $c;
     248$a = $b !== $c;
     249$a = $b << 2;
     250$a = $b >> 3;
     251$a += $b;
     252$a -= $b;
     253$a *= $b;
     254$a /= $b;
     255$a <<= $b;
     256$a >>= $b;
     257$a &= $b;
     258$a |= $b;
     259$a .= $b;
     260$a %= $b;
     261$a ^= $b;
     262$a = 'a' . 'b';
     263$a = 'a' . 'abc';
     264@f1();
     265print('1');
     266// ref(&$a);
     267$a = $array['index'];
     268$a = $object->prop;
     269$a = $this->prop;
     270$array['index'] = 1;
     271$object->prop = 1;
     272$this->prop = 1;
     273$a = isset($b);
     274$a = empty($b);
     275unset($b);
     276$a = isset($array['index']);
     277$a = empty($array['index']);
     278unset($array['index']);
     279$a = isset($object->prop);
     280$a = empty($object->prop);
     281unset($object->prop);
     282$a = isset($this->prop);
     283$a = empty($this->prop);
     284unset($this->prop);
     285$a = isset(ClassName::$prop);
     286$a = empty(ClassName::$prop);
     287unset(ClassName::$prop);
     288$a = (int) $b;
     289$a = (double) $b;
     290$a = (string) $b;
     291$a = (array) $b;
     292$a = (object) $b;
     293$a = (bool) $b;
     294$a = (unset) $b;
     295$a = (array) $b;
     296$a = (object) $b;
     297// PHP6+ $a = (scalar) $b;
     298$a = ($b ? $c : $d);
     299$a = (f1() ? f2() : f3());
     300($a = $b) xor $c;
     301($a = $b) and $c;
     302($a = $b) or $c;
     303$a = $b && $c;
     304$a = $b || $c;
     305
     306do {
     307    try {
     308        echo 'outer try 1';
     309
     310        try {
     311            echo 'inner try';
     312        }
     313        catch (InnerException $e) {
     314            echo $e;
     315        }
     316
     317        echo 'outer try 2';
     318    }
     319    catch (OuterException $e) {
     320        echo $e;
     321    }
     322} while (0);
     323
     324if (if_()) {
     325    echo 'if';
     326
     327    if (innerIf_()) {
     328        echo 'if innerIf';
     329    }
     330}
     331else if (elseif_()) {
     332    echo 'else if';
     333
     334    if (innerIf_()) {
     335        echo 'if innerIf';
     336    }
     337}
     338else {
     339    if (innerIf_()) {
     340        echo 'if innerIf';
     341    }
     342
     343    echo 'else';
     344}
     345
     346while (false) {
     347    echo 'while';
     348}
     349
     350do {
     351    echo 'do/while';
     352} while (false);
     353
     354$i = 1;
     355
     356for (; $i < 10; ++$i) {
     357    echo $i;
     358    break;
     359}
     360
     361foreach ($array as $value) {
     362    foreach ($value as $key => $value) {
     363        echo $key . ' = ' . $value . "\n";
     364        break 2;
     365        continue;
     366    }
     367}
     368
     369switch ($normalSwitch) {
     370case 'case1':
     371    echo 'case1';
     372
     373    switch ($nestedSwitch) {
     374    case 1:
     375    }
     376
     377    break;
     378
     379case 'case2':
     380    echo 'case2';
     381    break;
     382
     383default:
     384    switch ($nestedSwitch) {
     385    case 1:
     386    }
     387
     388    echo 'default';
     389    break;
     390}
     391
     392switch ($switchWithoutDefault) {
     393case 'case1':
     394    echo 'case1';
     395    break;
     396
     397case 'case2':
     398    echo 'case2';
     399    break;
     400}
     401
     402switch ($switchWithMiddleDefault) {
     403case 'case1':
     404    echo 'case1';
     405    break;
     406
     407default:
     408    echo 'default';
     409    break;
     410
     411case 'case2':
     412    echo 'case2';
     413    break;
     414}
     415
     416switch ($switchWithInitialDefault) {
     417default:
     418    echo 'default';
     419    break;
     420
     421case 'case1':
     422    echo 'case1';
     423    break;
     424
     425case 'case2':
     426    echo 'case2';
     427    break;
     428}
     429
     430switch (emptySwitch()) {
     431}
     432
     433switch (emptySwitch()) {
     434default:
     435}
     436
     437declare (ticks=1) {
     438    echo 1;
     439}
     440
     441while (1) {
     442    declare (ticks=1) {
     443        echo 2;
     444    }
     445}
     446
     447require 'require.php';
     448require_once 'require_once.php';
     449include 'include.php';
     450include_once 'include_once.php';
     451echo __FILE__;
     452echo __LINE__;
     453
     454/*
     455echo 'PHP 5.3+ code testing';
     456const CONST_VALUE = 1;
     457echo $this::CONST_VALUE;
     458echo $a::CONST_VALUE;
     459echo CONST_VALUE;
     460$this::__construct();
     461$obj::__construct();
     462$a = $b ?: $d;
     463$a = ($b ?: $d) + $c;
     464$a = f1() ?: f2();
     465$a = C::f1() ?: C::f2();
     466$a = ($b ? $c : $d);
     467$a = ($b ? $c : $d) + $c;
     468$a = (f1() ? f3() : f2());
     469
     470if ($b ?: $d) {
     471    echo 'if ($b ?: $d)';
     472}
     473
     474if (($b ?: $d) + $c) {
     475    echo 'if (($b ?: $d) + $c)';
     476}
     477
     478if (f1() ?: f2()) {
     479    echo 'if (f1() ?: f2())';
     480}
     481
     482echo 'goto a';
     483goto a;
     484
     485$i = 1;
     486
     487for (; $i <= 2; ++$i) {
     488    goto a;
     489}
     490
     491a:
     492echo 'label a';
     493echo preg_replace_callback('~-([a-z])~', function($match) {
     494    return strtoupper($match[1]);
     495}, 'hello-world');
     496$greet = function($name) {
     497    printf("Hello %s\r\n", $name);
     498};
     499$greet('World');
     500$greet('PHP');
     501$total = 0;
     502$tax = 1;
     503$callback = function($quantity, $product) use($tax, &$total) {
     504    $tax = 'tax';
     505    static $static1 = array(1);
     506    static $static2;
     507    $tax = 'tax';
     508    $tax = --$tax;
     509    $pricePerItem = constant('PRICE_' . strtoupper($product));
     510    $total += $pricePerItem * $quantity * ($tax + 1);
     511};
     512// */
     513exit();
    7514
    8515?>
Note: See TracChangeset for help on using the changeset viewer.