Ho una classe per un Template Engine che viene usata come "base" per le altre e ho definito un paio di array. Questi array devono essere gestiti indipendentemente da ogni classe, mentre se modifico l'array tramite la classe pincipale, questo andrà a sovrascrivere quello della classe ereditaria. Faccio un esempio:
Codice PHP:
class A
{
private
$a = array();

function
edit(array $ary)
{
foreach (
$ary as $k => $v)
{
$this->a[$k] => $v;
}
}

# Altri metodi
}

class
B extends A
{
# altri metodi
}

$a = new A;
$b = new B;

$b->edit(array(
'TEST' => 'Test A',
));

$a->edit(array(
'TEST_2' => 'Test B',
));
In B c'è un metodo che richiama un metodo di A che fa l'eval() di un codice ed utilizza $this->a['key'] = 'value'; per mostrare i risultati.

Andando a cercare $this->a['TEST'], non ci sono problemi, ma perché $this->a['TEST_2'] non viene visualizzato nell'eval()?

C'è un modo per poter ovviare a questo problema e quindi poter definire per tutte le sotto classi l'array se modificato da A, mentre da B solo per questa?