1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| class MaClasse
{
private $variables = array();
/**
* ajoute des variables au tableau variables de l'objet courant
* si le paramètre variable est un tableau on le fusionne
* avec le tableau de la classe (si nouvelles valeurs elles
* remplacent les précédentes)
* si le paramètre variable est une chaîne, on ajoute cette dimension
* au tableau de la classe et sa valeur est le paramètre valeur
* (cette valeur peut être un tableau...)
* si la dimension existe déjà, la nouvelle valeur remplace
* la précédente
*/
public function ajouteVariable($variable, $valeur='')
{
//$this->trace->ajoute();
if(is_array($variable))
$this->variables = array_merge($this->variables, $variable);
else
$this->variables[$variable] = $valeur;
}
/**
* retourne la valeur d'une variable stockée dans l'objet
* (si la variable existe sinon renvoie rien)
* portant le nom passé en paramètre
* si plusieurs paramètres retourne la valeur du tableau
* $this->variables['param1']['param2']['param3']....
* La valeur retournée peut être un tableau
*/
public function donneVariable()
{
//$this->trace->ajoute();
if(func_num_args()!=0)
{
$tab = 'this->variables';
for($i=0;$i<func_num_args();$i++)
{
$tab .= "['".func_get_arg($i)."']";
}
if(eval("return isset(\$$tab);"))
{
return eval("return \$$tab;");
}
}
}
} |