I just want an indication as to whether or not I'm on the right track regarding PHP OOP, at least on a basic level.  Positive criticism welcome.P.S. Excuse the visuals of the code.  This is how I usually remember code.<html><?php//Blueprintclass Human{    // properties of human    private $gender;    private $name;    private $age;    private $talk;    public function __construct($gender, $name, $age, $talk){        $this->gender   = $gender;        $this->name     = $name;        $this->age      = $age;        $this->talk     = $talk;    }    public function getGender(){        return $this->gender;    }       public function getName(){        return $this->name;    }    public function getAge(){        return $this->age;    }    public function getTalk(){        return $this->talk;    }}class female extends Human{    //properties of female    private $bum;    private $feet;     public function __construct($gender, $name, $age, $talk, $bum, $feet){        parent::__construct($gender, $name, $age, $talk);        $this->bum  = $bum;        $this->feet = $feet;     }    public function  getBumSize(){        return $this->bum;    }    public function getFeetSize(){        return $this->feet;    }}class male extends Human{    //properties of male    private $facialHair;    private $adamsApple;    public function __construct($gender, $name, $age, $talk, $facialHair, $adamsApple){        parent::__construct($gender, $name, $age, $talk);        $this->beard    = $facialHair;        $this->throat   = $adamsApple;     }    public function getBeard(){        return $this->beard;    }    public function getThroat(){        return $this->throat;    }}//instantiate objects$malePerson     = new male('male', 'John Doe', '32', 'clear', 'beard', 'adams apple in my throat');$femalePerson   = new female('female', 'Jane Doe', '28', 'loud', 'big and round', 'small');echo Hi, My name is {$malePerson->getName()}, {$malePerson->getAge()} years of age, I talk {$malePerson->getTalk()}         so i guess that makes me {$malePerson->getGender()} a.k.a man....I also have         a {$malePerson->getThroat()} and a {$malePerson->getBeard()} which is very very long .lol;echo <br>;echo Hi, My name is {$femalePerson->getName()}, {$femalePerson->getAge()} years of age, I talk {$malePerson->getTalk()} so i         guess that makes me {$femalePerson->getGender()} a.k.a mamalicious....I also have          {$femalePerson->getFeetSize()} feet and a {$femalePerson->getBumSize()} bum.lol;?></html>
Human class implementation
php;object oriented;beginner
If you would put one or more introduceYourself() functions inside your class, then you wouldn't need that many getter-methods. It is easier, and often recommended, to tell the object to do something, don't ask for it's information and then do something with that information. This is a principle called: Tell, don't ask.Why do you pass $gender variable to your constructor? Aren't all males male and all females female?Your a.k.a. text is hard-coded into the calling code and not a property of any human. Switching the $malePerson to become a female would print that makes me female a.k.a man. You would have to modify code in several places to fix this, which indicates that this is a code smell.I really think there are more interesting aspects of females than storing their bum size. Try their hair color instead.Rewriting your code a little would create something like this:$malePerson     = new male('male', 'John Doe', '32', 'clear', 'beard', 'adams apple in my throat');$femalePerson   = new female('female', 'Jane Doe', '28', 'loud', 'big and round', 'small');$malePerson->introduceYourself();$femalePerson->introduceYourself();As for the introduceYourself code, it could look something like this:public function introduceYourself() {    echo Hi, my name is $name, $age years of age I talk $talk so I guess that makes me {$this->getGender()}...;}You could override the getGender() method for males and females so that instead of passing the variable to the constructor, the class returns the proper value for this.public function getGender(){    return female;}You might want to read up on Class Abstraction in the PHP Manual and consider making your Human class into an abstract class.