- var_dump: documentation ( source)
- preg_match: documentation ( source)
- unserialize: documentation ( source)
- serialize: documentation ( source)
- sprintf: documentation ( source)
<?php
class Foo
{
}
class Bar
{
}
$foo = new Foo();
$foo = change_class($foo, 'Bar');
var_dump($foo);
function change_class($object, $new_class) {
preg_match('~^O:[0-9]+:"[^"]+":(.+)$~', serialize($object), $matches);
return unserialize(sprintf('O:%s:"%s":%s', strlen($new_class), $new_class, $matches[1]));
}