From: Richard Quadling on
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.

--
-----
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=ZEND002498&r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling
From: Shawn McKenzie on
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
From: Shawn McKenzie on
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
From: Shawn McKenzie on
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
From: Richard Quadling on
2010/1/18 Shawn McKenzie <nospam(a)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=ZEND002498&r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling