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-- Handling of new in constant expressions in reflection --FILE-- <?php function te..

Decoded Output download

--TEST--
Handling of new in constant expressions in reflection
--FILE--
<?php

function test1() {
    static $x = new stdClass;
    return $x;
}

$rf = new ReflectionFunction('test1');
$s = $rf->getStaticVariables();
var_dump($s['x'] === test1());

function test2($x = new stdClass) {
    return $x;
}

$rf = new ReflectionFunction('test2');
$rp = $rf->getParameters()[0];
// Parameter default should *not* be the same.
var_dump($rp->getDefaultValue() !== test2());

?>
--EXPECT--
bool(true)
bool(true)

Did this file decode correctly?

Original Code

--TEST--
Handling of new in constant expressions in reflection
--FILE--
<?php

function test1() {
    static $x = new stdClass;
    return $x;
}

$rf = new ReflectionFunction('test1');
$s = $rf->getStaticVariables();
var_dump($s['x'] === test1());

function test2($x = new stdClass) {
    return $x;
}

$rf = new ReflectionFunction('test2');
$rp = $rf->getParameters()[0];
// Parameter default should *not* be the same.
var_dump($rp->getDefaultValue() !== test2());

?>
--EXPECT--
bool(true)
bool(true)

Function Calls

None

Variables

None

Stats

MD5 9de31da8118b4a2e0e32b88fcf82ea06
Eval Count 0
Decode Time 89 ms