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));