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-- SPL: FixedArray: Non integer offset handling --FILE-- <?php $o = new SplFixedArra..

Decoded Output download

--TEST--
SPL: FixedArray: Non integer offset handling
--FILE--
<?php
$o = new SplFixedArray(10);
$r = fopen('php://memory', 'r+');


echo 'Write context', \PHP_EOL;
$o[false] = 'a';
$o[true] = 'b';
$o[2.5] = 'c';

try {
    $o[[]] = 'd';
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    $o[new stdClass()] = 'e';
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    $o[$r] = 'f';
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}

$o['3'] = 'g';

try {
    $o['3.5'] = 'h';
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    $o['03'] = 'i';
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    $o[' 3'] = 'j';
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}


echo 'Read context', \PHP_EOL;
var_dump($o[false]);
var_dump($o[true]);
var_dump($o[2.5]);

try {
    var_dump($o[[]]);
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    var_dump($o[new stdClass()]);
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    var_dump($o[$r]);
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}

var_dump($o['3']);

try {
    var_dump($o['3.5']);
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    var_dump($o['03']);
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    var_dump($o[' 3']);
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}


echo 'isset()', \PHP_EOL;
var_dump(isset($o[false]));
var_dump(isset($o[true]));
var_dump(isset($o[2.5]));

try {
    var_dump(isset($o[[]]));
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    var_dump(isset($o[new stdClass()]));
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    var_dump(isset($o[$r]));
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}

var_dump(isset($o['3']));

try {
    var_dump(isset($o['3.5']));
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    var_dump(isset($o['03']));
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    var_dump(isset($o[' 3']));
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}

echo 'empty()', \PHP_EOL;
var_dump(empty($o[false]));
var_dump(empty($o[true]));
var_dump(empty($o[2.5]));

try {
    var_dump(empty($o[[]]));
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    var_dump(empty($o[new stdClass()]));
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    var_dump(empty($o[$r]));
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}

var_dump(empty($o['3']));

try {
    var_dump(empty($o['3.5']));
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    var_dump(empty($o['03']));
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
try {
    var_dump(empty($o[' 3']));
} catch (\TypeError $e) {
    echo $e->getMessage(), "
";
}
?>
--EXPECTF--
Write context

Deprecated: Implicit conversion from float 2.5 to int loses precision in %s on line %d
Illegal offset type
Illegal offset type

Warning: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d
Illegal offset type
Illegal offset type
Illegal offset type
Read context
string(1) "a"
string(1) "b"

Deprecated: Implicit conversion from float 2.5 to int loses precision in %s on line %d
string(1) "c"
Illegal offset type
Illegal offset type

Warning: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d
string(1) "f"
string(1) "g"
Illegal offset type
Illegal offset type
Illegal offset type
isset()
bool(true)
bool(true)

Deprecated: Implicit conversion from float 2.5 to int loses precision in %s on line %d
bool(true)
Illegal offset type
Illegal offset type

Warning: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d
bool(true)
bool(true)
Illegal offset type
Illegal offset type
Illegal offset type
empty()
bool(false)
bool(false)

Deprecated: Implicit conversion from float 2.5 to int loses precision in %s on line %d
bool(false)
Illegal offset type
Illegal offset type

Warning: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d
bool(false)
bool(false)
Illegal offset type
Illegal offset type
Illegal offset type

Did this file decode correctly?

Original Code

--TEST--
SPL: FixedArray: Non integer offset handling
--FILE--
<?php
$o = new SplFixedArray(10);
$r = fopen('php://memory', 'r+');


echo 'Write context', \PHP_EOL;
$o[false] = 'a';
$o[true] = 'b';
$o[2.5] = 'c';

try {
    $o[[]] = 'd';
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    $o[new stdClass()] = 'e';
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    $o[$r] = 'f';
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}

$o['3'] = 'g';

try {
    $o['3.5'] = 'h';
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    $o['03'] = 'i';
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    $o[' 3'] = 'j';
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}


echo 'Read context', \PHP_EOL;
var_dump($o[false]);
var_dump($o[true]);
var_dump($o[2.5]);

try {
    var_dump($o[[]]);
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    var_dump($o[new stdClass()]);
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    var_dump($o[$r]);
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}

var_dump($o['3']);

try {
    var_dump($o['3.5']);
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    var_dump($o['03']);
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    var_dump($o[' 3']);
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}


echo 'isset()', \PHP_EOL;
var_dump(isset($o[false]));
var_dump(isset($o[true]));
var_dump(isset($o[2.5]));

try {
    var_dump(isset($o[[]]));
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    var_dump(isset($o[new stdClass()]));
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    var_dump(isset($o[$r]));
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}

var_dump(isset($o['3']));

try {
    var_dump(isset($o['3.5']));
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    var_dump(isset($o['03']));
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    var_dump(isset($o[' 3']));
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}

echo 'empty()', \PHP_EOL;
var_dump(empty($o[false]));
var_dump(empty($o[true]));
var_dump(empty($o[2.5]));

try {
    var_dump(empty($o[[]]));
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    var_dump(empty($o[new stdClass()]));
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    var_dump(empty($o[$r]));
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}

var_dump(empty($o['3']));

try {
    var_dump(empty($o['3.5']));
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    var_dump(empty($o['03']));
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
try {
    var_dump(empty($o[' 3']));
} catch (\TypeError $e) {
    echo $e->getMessage(), "\n";
}
?>
--EXPECTF--
Write context

Deprecated: Implicit conversion from float 2.5 to int loses precision in %s on line %d
Illegal offset type
Illegal offset type

Warning: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d
Illegal offset type
Illegal offset type
Illegal offset type
Read context
string(1) "a"
string(1) "b"

Deprecated: Implicit conversion from float 2.5 to int loses precision in %s on line %d
string(1) "c"
Illegal offset type
Illegal offset type

Warning: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d
string(1) "f"
string(1) "g"
Illegal offset type
Illegal offset type
Illegal offset type
isset()
bool(true)
bool(true)

Deprecated: Implicit conversion from float 2.5 to int loses precision in %s on line %d
bool(true)
Illegal offset type
Illegal offset type

Warning: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d
bool(true)
bool(true)
Illegal offset type
Illegal offset type
Illegal offset type
empty()
bool(false)
bool(false)

Deprecated: Implicit conversion from float 2.5 to int loses precision in %s on line %d
bool(false)
Illegal offset type
Illegal offset type

Warning: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d
bool(false)
bool(false)
Illegal offset type
Illegal offset type
Illegal offset type

Function Calls

None

Variables

None

Stats

MD5 8b5d75223bc02f087e701ed061c7a360
Eval Count 0
Decode Time 115 ms