note 40639 added to language.types.type-juggling
| From: | dimo dot vanchev at bianor dot com | Date: | Wed, 10 Mar 2004 12:02:17 +0000 |
| Subject: | note 40639 added to language.types.type-juggling | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-66545@lists.php.net to get a copy of this message | ||
For some reason the code-fix posted by philip_snyder at hotmail dot com [27-Feb-2004 02:08]
didn't work for me neither with long_class_names nor with short_class_names. I'm using PHP
v4.3.5 for Linux.
Anyway here's what I wrote to solve the long_named_classes problem:
<?php
function typecast($old_object, $new_classname) {
if(class_exists($new_classname)) {
$old_serialized_object = serialize($old_object);
$old_object_name_length = strlen(get_class($old_object));
$subtring_offset = $old_object_name_length + strlen($old_object_name_length) + 6;
$new_serialized_object = 'O:' . strlen($new_classname) . ':"' .
$new_classname . '":';
$new_serialized_object .= substr($old_serialized_object, $subtring_offset);
return unserialize($new_serialized_object);
} else {
return false;
}
}
?>
----
Manual Page -- http://www.php.net/manual/en/language.types.type-juggling.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+40639
Delete -- http://master.php.net/manage/user-notes.php?action=delete+40639&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+40639&report=yes
Search -- http://master.php.net/manage/user-notes.php