- var_dump: documentation ( source)
- preg_replace_callback: documentation ( source)
- unserialize: documentation ( source)
- serialize: documentation ( source)
- str_replace: documentation ( source)
<?php
class Foo {
protected $a = 'protected_prop';
private $b = 'private_prop';
function out(){
var_dump($this->a);
var_dump($this->b);
}
}
// reading
$F = new Foo();
$data = (array)$F;
var_dump($data["\0*\0a"]);
var_dump($data["\0Foo\0b"]);
// writing
$F = serialize($F);
var_dump($F);
$F = str_replace('protected_prop','new_protected_prop',$F);
$F = str_replace('private_prop','new_private_prop',$F);
$F = preg_replace_callback ( '!s:(\d+):"(.*?)";!', function($match) {
return ($match[1] == strlen($match[2])) ? $match[0] : 's:' . strlen($match[2]) . ':"' . $match[2] . '";';
},$F );
$F = unserialize($F);
if ($F instanceof F){
$F->out();
}