Source for file recast.function.php

Documentation is available at recast.function.php

  1. <?php
  2.  
  3. /**
  4. * Re-casts a given object $old_object to a new class ($new_classname).
  5. * @param ref object $old_object Any object.
  6. * @param string $new_classname
  7. * @return ref object Returns the object re-cast as $new_classname.
  8. *
  9. * @package harmoni.utilities
  10. *
  11. * @copyright Copyright &copy; 2005, Middlebury College
  12. * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL)
  13. *
  14. * @version $Id: recast.function.php,v 1.7 2007/09/04 20:25:54 adamfranco Exp $
  15. */
  16. function recast($old_object, $new_classname) {
  17. if(class_exists($new_classname)) {
  18. $old_serialized_object = serialize($old_object);
  19. $old_object_name_length = strlen(get_class($old_object));
  20. $subtring_offset = $old_object_name_length + strlen($old_object_name_length) + 6;
  21. $new_serialized_object = 'O:' . strlen($new_classname) . ':"' .
  22. $new_classname . '":'.substr($old_serialized_object, $subtring_offset);
  23. $obj = unserialize($new_serialized_object);
  24. return $obj;
  25. } else {
  26. $false = false;
  27. return $false;
  28. }
  29. }
  30.  
  31. ?>

Documentation generated on Wed, 19 Sep 2007 10:25:45 -0400 by phpDocumentor 1.3.0RC3