Thanks everyone,

Gave me a much better understanding of it

"Jim Lucas" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> Jim Lucas wrote:
> > Jeff Taylor wrote:
> >> Hey all, got a slight problem, where for some reasons my variables
> >> dont seem
> >> to be getting stored in the child class:
> >>
> >> e.g
> >>
> >> class Parent
> > At least in PHP 5.2.1 on windows xp (for testing only), the class name
> > Parent is a reserved class name, you cannot define a class by that name.
> >
> >> {
> >>   $private type;
> >>
> >>   public function __construct()
> >>   {
> >>   }
> >>
> >>    public function GetType()
> >>    {
> >>       return $this->type;
> >>   }
> >> }
> >>
> >> class Child implements Parent
> >> {
> >>     $public function __construct()
> > public should not be prefixed with '$'
> > you are missing your open '{' for this method
> >>
> >
> > You need to call
> > parent::__construct();
> >
> >>
> >>       $this->type= 'Child';
> >>       }
> >> }
> >>
> >> $Child= new Child();
> >> echo $Child->getType;
> > also, you are calling a method, not accessing a property.
> >
> > it should be
> > echo $Child->getType();
> >
> >>
> >> Can u see any reason why the type would return null?
> >>
> >> Thanks,
> >>
> >> Jeff
> >>
> >>
> > well, for starters, I think it is incorrect to have public and private
> > prefixed with a '$'.  But then you have it on some, but not all of
> > them.....
> >
> > Besides that, does it give you an error?  What does it return if it
> > doesn't return 'Child'??
> >
> > What version of PHP are you running on.  there is a differnet way the
> > constuct() method gets called.
> >
> > public and private are not available in versions older than php 5
> >
> > in PHP version < 5 you have to have a method named the same as the class
> > that you are creating.
> >
> > Try this:
> > <?php
> >
> > class myParent {
> > #    private $type;    #<--- With this, I cannot echo $type
> >
> >     var $type;    #<--- With this, I CAN echo $type
> >
> >     public function __construct() {
> >     }
> >
> >     public function myParent() {
> >         $this->__construct();
> >     }
> >     public function getType() {
> >         echo $this->type;
> >     }
> > }
> >
> > class myChild extends myParent {
> >     public function __construct() {
> >         parent::__construct();
> >         $this->type = 'Child';
> >     }
> >     public function myChild() {
> >         $this->__construct();
> >     }
> > }
> >
> > $Child = new myChild();
> > echo $Child->getType();
> >
> > ?>
> >
>
> ok, responded too quickly.  Roman has it right with the settype method
>
> This now works.
>
> <?php
>
> class myParent {
> private $type;
> public function __construct() {
> return $this;
> }
> public function myParent() {
> return $this->__construct();
> }
> public function setType($value='') {
> $this->type = $value;
> }
> public function getType() {
> return $this->type;
> }
> }
>
> class myChild extends myParent {
> public function __construct() {
> parent::__construct();
> $this->setType('Child');
> return $this;
> }
> public function myChild() {
> return $this->__construct();
> }
> }
>
> $Child = new myChild();
> echo $Child->getType();
>
> ?>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to