Class Casting в PHP

Аз също съм се чудил, защо PHP все още няма такава възможност, при която да може да cast-неш един обект в друг. Ето едно интересно решение:

/**
 * Cast an object to another class, keeping
 * the properties, but changing the methods
 *
 * @param string $class  Class name
 * @param object $object
 * @return object
 */
function casttoclass($class, $object)
{
 return unserialize(preg_replace(
     '/^O:d+:"[^"]++"/',
     'O:' . strlen($class) . ':"' . $class . '"',
     serialize($object)
   ));
}

Повече може да прочетете тук:

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *