[PHP] Re: Casting objects.
2010/1/18 Shawn McKenzie nos...@mckenzies.net: Shawn McKenzie wrote: Never mind, that was stupid. I saw that somewhere before, but obviously it doesn't work. I found some code, maybe I redeem myself? static public function cast($object, $class=__CLASS__){ if(class_exists($class)) { $object = unserialize( preg_replace('/^O:[0-9]+:[^]+:/i', 'O:'.strlen($class).':'.$class.':', serialize($object))); } } $row = odbc_fetch_object($result); structuresRemovalReason::cast($row); -- Thanks! -Shawn http://www.spidean.com That's an interesting approach. Though I'm going to use reflection. I realise I need to hold some of the data in strings where the data is not a string (datetimes for example). So, using a docblock with a customtag and this seems to be working just fine. Extended ReflectionClass and ReflectionProperty. Thanks, Richard. -- - Richard Quadling Standing on the shoulders of some very clever giants! EE : http://www.experts-exchange.com/M_248814.html Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498r=213474731 ZOPA : http://uk.zopa.com/member/RQuadling -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Re: Casting objects.
Richard Quadling wrote: Hello. I've got an object via odbc_fetch_object (which is of stdClass). I have an class structuresRemovalReason. I want to cast the response of odbc_fetch_object to structuresRemovalReason. The only way I can see of doing this is to not use odbc_fetch_object, but odbc_fetch_assoc and then iterate the array and populate a new structuresRemovalReason. Or an I missing a trick. I'm pretty sure I am. Regards, Richard Quadling. Something like this in your class or another class may work (not tested). You might even fetch an array and send it to this method. I think either should work: class structuresRemovalReason { static public function cast(structuresRemovalReason $object) { return $object; } } $row = structuresRemovalReason::cast(odbc_fetch_object($result)); -- Thanks! -Shawn http://www.spidean.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Re: Casting objects.
Shawn McKenzie wrote: Richard Quadling wrote: Hello. I've got an object via odbc_fetch_object (which is of stdClass). I have an class structuresRemovalReason. I want to cast the response of odbc_fetch_object to structuresRemovalReason. The only way I can see of doing this is to not use odbc_fetch_object, but odbc_fetch_assoc and then iterate the array and populate a new structuresRemovalReason. Or an I missing a trick. I'm pretty sure I am. Regards, Richard Quadling. Something like this in your class or another class may work (not tested). You might even fetch an array and send it to this method. I think either should work: class structuresRemovalReason { static public function cast(structuresRemovalReason $object) { return $object; } } $row = structuresRemovalReason::cast(odbc_fetch_object($result)); Never mind, that was stupid. I saw that somewhere before, but obviously it doesn't work. -- Thanks! -Shawn http://www.spidean.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Re: Casting objects.
Shawn McKenzie wrote: Never mind, that was stupid. I saw that somewhere before, but obviously it doesn't work. I found some code, maybe I redeem myself? static public function cast($object, $class=__CLASS__){ if(class_exists($class)) { $object = unserialize( preg_replace('/^O:[0-9]+:[^]+:/i', 'O:'.strlen($class).':'.$class.':', serialize($object))); } } $row = odbc_fetch_object($result); structuresRemovalReason::cast($row); -- Thanks! -Shawn http://www.spidean.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php