You are here: Re: [PHP] Change Object Type « PHP « IT news, forums, messages
Re: [PHP] Change Object Type

Posted by Jochem Maas on 10/13/28 11:14

marc serra wrote:
> hi,
> i'm looking for a solution to change the object's class.
>
> i got a class and a derived class like this: (just for example,
> completly stupid ^^)
>
> class Ex{
> var a;
> var b;
> }
>
> class Ex2 extends Ex{
> var c;
> }
>
> i want to create an object Ex and after change the object class to Ex2
> to complete him like this:
> $ex = new Ex();
> $ex->a = 1;
> $ex->b = 2;
>
> $ex2 = (Ex2)$ex; /// here i want to convert object Ex to object Ex2
> $ex2->c = 5;
>
> Can someone help me? I know it's possible to do this in JAVA but it is
> possible to do the same in PHP ?

its not possible exactly how you propose it, but I can certainly see a way of doing it
, something like (just an idea - code is not tested):

class Ex {
function __contruct($extend = null)
{
if (is_object($extend)) {
$parents = parent_classes($this);
if (in_array(get_class($extend, $parents))) {
// is a parent!
// now do some kind of loop to set the vars
// of $this to the values of the same vars in $extend
// maybe reflection would a good way to write this
// generically
}
}
}
var a;
var b;
}

class Ex2 extends Ex {
var c;
}

$A = new Ex();
$A->a = 1;
$A->b = 2;

$B = new Ex2( $ex );
$B->c = 5;

also you might want to look into writing a custom __clone() method
for the relevant class which returns a different (subclass) object
underwhatever circumstances (I have no idea whether it is allowed to return
an object from __clone() of a different class to the class of the object
you are cloning)

> thx in advance,
> Marc.
>

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация