in PHP é possibile creare delle classi derivare da altre classi (vedi ereditarietà)

la classe derivata (sottoclasse) eredita tutte le variabili public e protected
e tutti i metodi compreso costruttore e distruttore

sintassi:
class NOME_CLASSE_DERIVATA extends NOME_CLASSE_BASE {...}



esempio: Person → Dipendentre
<?php

class Persona classe base
{
protected $name;
}

class Dipendente extends Persona classe derivata
{
function setName($name)
{
$this->name = $name;
}
}

$dipendente = new Dipendente();
$dipendente->setName("Mario Rossi");
$dipendente->name = "Mario Rossi"; questo provoca un errore in quanto la variabile $name é protected e non public
?>



esempio più complicato: Person → Employees
<?php

dichiarazione della superclasse Person
class Person
{
variabili
public $name; visibile ovunque nello script
protected $id_rif; visibile nella superclasse e nella sottoclasse
private $password; visibile solo nella classe Person

costruttore Person
public function __construct()
{
echo "Chiamata costruttore della Superclasse";

inizializzazione della proprietà $name
$this->name = "Mario Rossi";
}

metodi
public function getName()
{
restituisce il nome ("Mario Rossi")
return $this->name;
}

public function setPassword($password)
{
imposta la password
$this->password = $password;
}
}

definizione della sottoclasse Employees
class Employees extends Person
{
variabile
public $profile;

public function __construct($profile, $password) costruttore della sottoclasse Employees
{
$this->setPassword($password); la sottoclasse accede a tutti i membri della superclasse attraverso la parola chiave $this
$this->profile=$profile; inizializzazione della nuova proprietà della sottoclasse
}

function setId($id_rif)
{
$this->id_rif = $id_rif; inizializzazione della proprietà della superclasse
}
}

istanzia un nuovo oggetto della classe Person
$customer = new Person();
echo "Customer: ".$customer->getName(); → Customer: Mario Rossi

istanzia un nuovo oggetto della classe Employees, dando profilo e password richiesti dal costruttore
$employee = new Employees("Amministratore","XUHjLoo");
$employee->name = "Franco Dolce"; setto la variabile $name dando il nome Franco Dolce essendo public
$employee->setId(7); setto la id 7 con il metodo ereditato

restituisce un array associativo dell'oggetto
print_r(get_object_vars($customer));
print_r(get_object_vars($employee));
?>