note 40282 added to language.types.type-juggling
| From: | philip_snyder at hotmail dot com | Date: | Fri, 27 Feb 2004 12:08:06 +0000 |
| Subject: | note 40282 added to language.types.type-juggling | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-65877@lists.php.net to get a copy of this message | ||
Re: the typecasting between classes post below... fantastic, but slightly flawed. Any class name
longer than 9 characters becomes a problem... SO here's a simple fix:
function typecast($old_object, $new_classname) {
if(class_exists($new_classname)) {
// Example serialized object segment
// O:5:"field":9:{s:5:... <--- Class: Field
$old_serialized_prefix = "O:".strlen(get_class($old_object));
$old_serialized_prefix .= ":\"".get_class($old_object)."\":";
$old_serialized_object = serialize($old_object);
$new_serialized_object =
'O:'.strlen($new_classname).':"'.$new_classname . '":';
$new_serialized_object .= substr($old_serialized_object,strlen($old_serialized_prefix));
return unserialize($new_serialized_object);
}
else
return false;
}
Thanks for the previous code. Set me in the right direction to solving my typecasting problem. ;)
----
Manual Page -- http://www.php.net/manual/en/language.types.type-juggling.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+40282
Delete -- http://master.php.net/manage/user-notes.php?action=delete+40282&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+40282&report=yes
Search -- http://master.php.net/manage/user-notes.php