Variable ayant un nom numérique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Variable ayant un nom numérique

Variable ayant un nom numérique

par abelthorne » 12 août 2009, 17:12

Bonjour,
Admettons que j'aie la classe suivante :
class truc{
    function __construct($table){
        foreach($table as $key => $value) $this->$key=$value;
    }
}
Et que je lui passe un tableau de cette façon :
$montruc=new truc(array('a','b','c'));
Je me retrouverai avec des propriétés de classe dont le nom ressemble fortement à un entier. Si je fais un print_r sur $montruc, j'obtiendrai :

Code : Tout sélectionner

truc Object ( [0] => a [1] => b [2] => c )
Comment accéder aux propriétés de la classe ?
$montruc->1 ne marche pas (1 est un entier et pas une chaîne)
$montruc[1] non plus ($montruc est un objet, pas un tableau)
Par contre $montruc->{1} marche.

Est-ce que l'utilisation des accolades est la bonne méthode ? Est-ce que ça vous semble être du code propre ou quelque chose à ne pas faire (et je devrais plutôt créer un tableau dans ma classe pour y ranger mes valeurs) ?