corretto l'uso dell'overload. mostro l'esempio (corretto nella sinstassi).
Codice PHP:
class Padre
{
public $nome;
public function set($data)
{
foreach($data as $k=>$v)
{
$this->$k=$v;
}
}
function __set($name,$value)
{
echo "questa non la setto $name-->$value
";
}
}
class Figlio extends Padre
{
public $cognome;
public function __construct($data)
{
parent::set($data);
}
}
$son=new Figlio(array("nome"=>"luca","cognome"=>"bottoni","alias"=>"thebottons"));
print_r($son);
Nel mio esempio precedente non venivano settate le proprietà, perchè isset() non considerava nulla se non dichiarato anche vuoto (bastava mettere le proprietà public $nome="") perchè venissero considerate nella Padre->set(). il fenomeno che ho incontrato è l'overload, il quale è però controllabile tramite la funzione magica __set($k,$v)
ecco cosa stampa il codice:
questa non la setto alias-->thebottons
Figlio Object
(
[cognome] => bottoni
[nome] => luca
)
Grazie a tutti e due per la dritte.