Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

--TEST-- Reflection inheritance --FILE-- <?php class ReflectionClassEx extends Reflection..

Decoded Output download

--TEST--
Reflection inheritance
--FILE--
<?php

class ReflectionClassEx extends ReflectionClass
{
    public $bla;

    function getMethodNames()
    {
        $res = array();
        foreach($this->getMethods() as $m)
        {
            $res[] = $m->class . '::' . $m->name;
        }
        return $res;
    }
}

$r = new ReflectionClassEx('ReflectionClassEx');

$exp = array (
  'UMLClass::__clone',
  'UMLClass::__construct',
  'UMLClass::__toString',
  'UMLClass::getName',
  'UMLClass::isInternal',
  'UMLClass::isUserDefined',
  'UMLClass::isInstantiable',
  'UMLClass::getFileName',
  'UMLClass::getStartLine',
  'UMLClass::getEndLine',
  'UMLClass::getDocComment',
  'UMLClass::getConstructor',
  'UMLClass::getMethod',
  'UMLClass::getMethods',
  'UMLClass::getProperty',
  'UMLClass::getProperties',
  'UMLClass::getConstants',
  'UMLClass::getConstant',
  'UMLClass::getInterfaces',
  'UMLClass::isInterface',
  'UMLClass::isAbstract',
  'UMLClass::isFinal',
  'UMLClass::getModifiers',
  'UMLClass::isInstance',
  'UMLClass::newInstance',
  'UMLClass::getParentClass',
  'UMLClass::isSubclassOf',
  'UMLClass::getStaticProperties',
  'UMLClass::getDefaultProperties',
  'UMLClass::isIterateable',
  'UMLClass::implementsInterface',
  'UMLClass::getExtension',
  'UMLClass::getExtensionName');

$miss = array();

$res = $r->getMethodNames();

foreach($exp as $m)
{
    if (!in_array($m, $exp))
    {
        $miss[] = $m;
    }
}

var_dump($miss);

$props = array_keys(get_class_vars('ReflectionClassEx'));
sort($props);
var_dump($props);
var_dump($r->name);
?>
--EXPECT--
array(0) {
}
array(2) {
  [0]=>
  string(3) "bla"
  [1]=>
  string(4) "name"
}
string(17) "ReflectionClassEx"

Did this file decode correctly?

Original Code

--TEST--
Reflection inheritance
--FILE--
<?php

class ReflectionClassEx extends ReflectionClass
{
    public $bla;

    function getMethodNames()
    {
        $res = array();
        foreach($this->getMethods() as $m)
        {
            $res[] = $m->class . '::' . $m->name;
        }
        return $res;
    }
}

$r = new ReflectionClassEx('ReflectionClassEx');

$exp = array (
  'UMLClass::__clone',
  'UMLClass::__construct',
  'UMLClass::__toString',
  'UMLClass::getName',
  'UMLClass::isInternal',
  'UMLClass::isUserDefined',
  'UMLClass::isInstantiable',
  'UMLClass::getFileName',
  'UMLClass::getStartLine',
  'UMLClass::getEndLine',
  'UMLClass::getDocComment',
  'UMLClass::getConstructor',
  'UMLClass::getMethod',
  'UMLClass::getMethods',
  'UMLClass::getProperty',
  'UMLClass::getProperties',
  'UMLClass::getConstants',
  'UMLClass::getConstant',
  'UMLClass::getInterfaces',
  'UMLClass::isInterface',
  'UMLClass::isAbstract',
  'UMLClass::isFinal',
  'UMLClass::getModifiers',
  'UMLClass::isInstance',
  'UMLClass::newInstance',
  'UMLClass::getParentClass',
  'UMLClass::isSubclassOf',
  'UMLClass::getStaticProperties',
  'UMLClass::getDefaultProperties',
  'UMLClass::isIterateable',
  'UMLClass::implementsInterface',
  'UMLClass::getExtension',
  'UMLClass::getExtensionName');

$miss = array();

$res = $r->getMethodNames();

foreach($exp as $m)
{
    if (!in_array($m, $exp))
    {
        $miss[] = $m;
    }
}

var_dump($miss);

$props = array_keys(get_class_vars('ReflectionClassEx'));
sort($props);
var_dump($props);
var_dump($r->name);
?>
--EXPECT--
array(0) {
}
array(2) {
  [0]=>
  string(3) "bla"
  [1]=>
  string(4) "name"
}
string(17) "ReflectionClassEx"

Function Calls

None

Variables

None

Stats

MD5 41f8951b1101c0c948e669fc09f181af
Eval Count 0
Decode Time 99 ms