Ignore:
Timestamp:
2011-04-18T06:29:25+02:00 (4 years ago)
Author:
moo
Message:

merge changes from trunk

Location:
branches/1.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/1.3

  • branches/1.3/decompilesample.php

    r739 r766  
    11<?php
    22
    3 class ClassName
    4 {
     3//* >= PHP 5.3
     4namespace ns;
     5// */
     6
     7abstract class ClassName
     8{
     9    const CONST_VALUE = 'A constant value';
     10
    511    /** doc */
    612    static public $static = array(
     
    2935    public function __construct($a, $b)
    3036    {
    31     }
     37        echo CONST_VALUE;
     38        echo ClassName::CONST_VALUE;
     39        unset(ClassName::$classProp);
     40        unset($obj->objProp);
     41        unset($this->thisProp);
     42        unset($array['index']->valueProp);
     43        unset($obj->array['index']);
     44        unset($this->array['index']);
     45        $obj->objProp = 1;
     46        $this->thisProp = 1;
     47        $array['index']->valueProp = 1;
     48        $array['index'] = 1;
     49        $array[1] = 1;
     50    }
     51
     52    /** doc */
     53    abstract public function abastractMethod();
    3254
    3355    /** doc */
     
    6587}
    6688
     89interface IInterface
     90{
     91    public function nothing();
     92}
     93
     94function f1($f)
     95{
     96    echo __FUNCTION__;
     97    echo $f;
     98}
     99
     100final class Child extends ClassName implements IInterface
     101{
     102    public function __construct()
     103    {
     104        parent::__construct();
     105        ClassName::__construct();
     106        echo __CLASS__;
     107        echo __METHOD__;
     108        throw new Exception();
     109        $this->methodCall();
     110    }
     111
     112    public function __destruct()
     113    {
     114        parent::__destruct();
     115        functionCall();
     116    }
     117
     118    static public function __callStatic($name, $args)
     119    {
     120    }
     121
     122    public function __toString()
     123    {
     124    }
     125
     126    public function __set($name, $value)
     127    {
     128    }
     129
     130    public function __get($name)
     131    {
     132    }
     133
     134    public function __isset($name)
     135    {
     136    }
     137
     138    public function __unset($name)
     139    {
     140    }
     141
     142    public function __sleep()
     143    {
     144    }
     145
     146    public function __wakeup()
     147    {
     148    }
     149
     150    public function __clone()
     151    {
     152        return array();
     153    }
     154}
     155
     156if ($late) {
     157class LateBindingClass
     158{}
     159
     160function lateBindingFunction($arg)
     161{
     162    echo 'lateFunction';
     163}
     164}
     165
     166echo "\r\n";
     167echo "\r";
     168echo "\n";
     169echo str_replace(array('a' => 'a', 'b' => 'c'), 'b');
     170$object = new ClassName();
     171$object = new $className();
     172$result = $object instanceof ClassName;
     173$cloned = clone $object;
     174$a = 1;
     175$a = $b + $c;
     176$a = $b + 1;
     177$a = 1 + $b;
     178$a = $b - $c;
     179$a = $b * $c;
     180$a = $b / $c;
     181$a = $b % $c;
     182$a = $b . $c;
     183$a = $b = $c;
     184$a = $b & $c;
     185$a = $b | $c;
     186$a = $b ^ $c;
     187$a = ~$b;
     188$a = -$b;
     189$a = +$b;
     190$a = $b >> $c;
     191$a = $b >> $c;
     192$a = $b == $c;
     193$a = $b === $c;
     194$a = $b != $c;
     195$a = $b < $c;
     196$a = $b <= $c;
     197$a = $b <= $c;
     198$a = $b++;
     199$a = ++$b;
     200$a = $obj->b++;
     201$a = ++$obj->b;
     202$a = $b--;
     203$a = --$b;
     204$a = $obj->b--;
     205$a = --$obj->b;
     206$a = $b xor $c;
     207$a = !$b;
     208$a = $b === $c;
     209$a = $b !== $c;
     210$a = $b << 2;
     211$a = $b >> 3;
     212$a += $b;
     213$a -= $b;
     214$a *= $b;
     215$a /= $b;
     216$a <<= $b;
     217$a >>= $b;
     218$a &= $b;
     219$a |= $b;
     220$a .= $b;
     221$a %= $b;
     222$a ^= $b;
     223$a = 'a' . 'b';
     224$a = 'a' . 'abc';
     225@f1();
     226print('1');
     227ref(&$a);
     228$a = $array['index'];
     229$a = $object->prop;
     230$a = $this->prop;
     231$array['index'] = 1;
     232$object->prop = 1;
     233$this->prop = 1;
     234$a = isset($b);
     235$a = empty($b);
     236$a = isset($array['index']);
     237$a = empty($array['index']);
     238$a = isset($object->prop);
     239$a = empty($object->prop);
     240$a = isset($this->prop);
     241$a = empty($this->prop);
     242$a = (int) $b;
     243$a = (double) $b;
     244$a = (string) $b;
     245$a = (array) $b;
     246$a = (object) $b;
     247$a = (bool) $b;
     248$a = (unset) $b;
     249$a = (array) $b;
     250$a = (object) $b;
     251// PHP6+ $a = (scalar) $b;
     252$a = $b ? $c : $d;
     253$a = f1() ? f2() : f3();
     254$a = $b and $c;
     255$a = $b or $c;
     256$a = $b && $c;
     257$a = $b || $c;
     258
     259try {
     260    echo 'outer try 1';
     261    try {
     262        echo 'inner try';
     263    }
     264    catch (InnerException $e) {
     265        echo $e;
     266    }
     267    echo 'outer try 2';
     268}
     269catch (OuterException $e) {
     270    echo $e;
     271}
     272
     273if ($a) {
     274    echo 'if ($a)';
     275}
     276else if ($b) {
     277    echo 'else if ($b)';
     278}
     279else {
     280    echo 'else';
     281}
     282
     283while (false) {
     284    echo 'while';
     285}
     286
     287do {
     288    echo 'do/while';
     289} while (false);
     290
     291for ($i = 1; $i < 10; ++$i) {
     292    echo $i;
     293    break;
     294}
     295
     296foreach ($array as $key => $value) {
     297    foreach ($array as $key => $value) {
     298        echo $key . ' = ' . $value . "\n";
     299        break 2;
     300        continue;
     301    }
     302}
     303
     304switch ($switch) {
     305case 'case1':
     306    echo 'case1';
     307    break;
     308
     309case 'case2':
     310    echo 'case2';
     311    break;
     312
     313default:
     314    echo 'default';
     315    break;
     316}
     317
     318declare (ticks=1) {
     319    echo 1;
     320    echo 2;
     321}
     322
     323require 'require.php';
     324require_once 'require_once.php';
     325include 'include.php';
     326include_once 'include_once.php';
     327echo __FILE__;
     328echo __LINE__;
     329
     330//*
     331echo 'PHP 5.3+ code testing';
     332const CONST_VALUE = 1;
     333echo $this::CONST_VALUE;
     334echo $a::CONST_VALUE;
     335echo CONST_VALUE;
     336$this::__construct();
     337$obj::__construct();
     338
     339$a = $b ?: $d;
     340$a = ($b ?: $d) + $c;
     341$a = f1() ?: f2();
     342
     343echo 'goto a';
     344goto a;
     345
     346for ($i = 1; $i <= 2; ++$i) {
     347    goto a;
     348}
     349
     350a:
     351echo 'label a';
     352echo preg_replace_callback('~-([a-z])~', function ($match) {
     353    return strtoupper($match[1]);
     354}, 'hello-world');
     355$greet = function ($name) {
     356    printf("Hello %s\r\n", $name);
     357};
     358$greet('World');
     359$greet('PHP');
     360$total = 0;
     361$tax = 1;
     362$callback = function ($quantity, $product) use ($tax, &$total) {
     363    static $static = array(1);
     364    $tax = 'tax';
     365    $pricePerItem = constant('PRICE_' . strtoupper($product));
     366    $total += $pricePerItem * $quantity * ($tax + 1);
     367};
     368// */
     369exit();
    67370
    68371?>
Note: See TracChangeset for help on using the changeset viewer.