Ignore:
Timestamp:
2011-04-18T06:29:25+02:00 (3 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.