Problème à la création d'un objet [Résolu]

Signaler
Messages postés
26
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
5 août 2009
-
Messages postés
26
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
5 août 2009
-
Bonjour bonjour !

A partir d'un XML, je récupère sous forme d'objet les informations concernant un fichier (son nom, si ce fichier est requis, s'il fait partie d'une collection, son poids, et enfin sa valeur par défaut). A partir de ses attributs, je construit un champs de formulaire (qui constitue également un objet) qui lui est propre. Ici, il s'agit d'une image :

$images = new SimpleXMLElement(file_get_contents($chemin_fichiers.'images.xml'));

foreach ($images as $image)
{
    var_dump($image);
    $this->fichiers[$image->nom] = new ImageField($image->nom, $image->est_requis, $image->est_unique, $image->poids_max, $image->default);
}


Cependant, j'obtiens :

object(SimpleXMLElement)#15 (5) { ["nom"]=>  string(5) "photo" ["est_requis"]=>  string(3) "oui" ["est_unique"]=>  string(3) "oui" ["poids_max"]=>  string(7) "5000000" ["default"]=>  string(11) "default.jpg" }

Warning: Illegal offset type in ...


...et là, je bloque. Sauriez-vous m'aider ?

1 réponse

Messages postés
26
Date d'inscription
jeudi 28 février 2008
Statut
Membre
Dernière intervention
5 août 2009

Hello!

Bon, j'ai réussi à résoudre mon problème (tout seul).

Il fallait en fait forcer la définition du type de donnée pour chaque attribut obtenus :

foreach ($images as $image)
{
$this->fichiers[(string)$image->nom] = new ImageField((string)$image->nom, (bool)$image->est_requis, (bool)$image->est_unique, (string)$image->default, (int)$image->poids_max);
}

Voilà... keep on programmin' folks.