On Sat, Oct 15, 2011 at 03:01:44PM +0100, Alain Williams wrote:
> Well, that is what I think that I need. Please let me explain what I am
> trying to do
> and tell me how to do it or a better way of doing it.
> ......
I have solved it. The problem is basically one of ensuring that properties are
the same
value when accessed via the parent or child class ... be that to get or set a
value.
So I solved the problem by making the properties in the child class references
to the
ones in the parent class.
Methods are not a problem - inheritance just works fine.
To do this, pass the instance of the parent class to the child class
constructor and use
a reflection class to determine the properties in the parent class. This will
not work
properly if the child class overrides a property of the parent class ... this
does not
worry me.
class Screen {
public $screen;
....
}
class Form extends Screen {
function __construct(&$s) {
$sr = new ReflectionClass($s);
foreach($sr->getProperties(ReflectionProperty::IS_PUBLIC |
ReflectionProperty::IS_PROTECTED) as $p)
$this->{$p->name} = &$s->{$p->name};
}
}
$s = new Screen(....);
$s->AddJsVar('Date', '15 Oct 2011');
$f1 = new Form($s);
$f1->screen = 'something'; // this assigns the property in $s.
Comments ?
--
Alain Williams
Linux/GNU Consultant - Mail systems, Web sites, Networking, Programmer, IT
Lecturer.
+44 (0) 787 668 0256 http://www.phcomp.co.uk/
Parliament Hill Computers Ltd. Registration Information:
http://www.phcomp.co.uk/contact.php
#include <std_disclaimer.h>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php