IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

comment ajouter une valeur a un objet dont le paramètres est un Array


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 117
    Points : 47
    Points
    47
    Par défaut comment ajouter une valeur a un objet dont le paramètres est un Array
    Bonjour :

    j'ai crié un objet avec un seul paramètre dont ses éléments (valeurs) regrouper dans un array.
    je veux ajouter une autre valeur a mon objet si une condition vient de se passer .
    voila mon script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $obj = new Maclass(array(
    	'id'=>'1',
    	'title'=>'titre',
    	'categorie'=>'BB'))
    et voila le code pour ajouter d'autre valeur au tableau de mon object.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $obj= (object) array_merge((array)$obj,array('user'=> $users));
    mais mon resultat est une erreur :
    fatal Catchable fatal error: Argument 1 passed to InserManager::insertClient() must be an instance of Client, instance of stdClass given
    pouvez vous m'aider a trouver la solution pour cette situation.

    merci a vous.

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Bonsoir,

    array_merge renvoie un tableau, que tu convertis ensuite en objet générique, c'est-à-dire une instance de la classe stdClass, la classe la plus générique (c'est cette classe qui apparaît dans ton message d'erreur).

    Ensuite dans un endroit du code que tu ne nous as pas montré, tu passes $obj à une certaine méthode insertClient. Il se trouve que cette méthode attend un objet de type Client, et il n'y a aucune chance que tu aies pu produire un Client en convertissant un tableau en objet générique.

    Tu as un petit problème conceptuel ici : un Client est un object, mais un object n'est pas nécessairement un Client.

    Ton autre erreur est de penser que tu peux « remonter dans le temps » et ajouter des clés au tableau que tu as passé en paramètre au moment où tu as construit ton objet new MaClass. Cet objet peut apparemment se convertir en array. Mais ce n'est pas un array ! Il faut que tu utilises les méthodes de ton objet pour lui ajouter des valeurs. Et si ces méthodes n'existent pas, c'est à toi de les écrire.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. Comment ajouter une valeur int constante à un bean write ?
    Par Battosaiii dans le forum Struts 1
    Réponses: 3
    Dernier message: 06/12/2011, 15h52
  2. Comment ajouter une valeur absente aux entrées d'un TCD ?
    Par papadrago dans le forum Conception
    Réponses: 2
    Dernier message: 22/02/2011, 10h42
  3. Réponses: 2
    Dernier message: 12/10/2009, 18h28
  4. Comment Ajouter une valeur nulle a une table d'un dataset?
    Par baradoss dans le forum Windows Forms
    Réponses: 11
    Dernier message: 17/05/2009, 20h47
  5. Comment ajouté une valeur
    Par solorac dans le forum Excel
    Réponses: 11
    Dernier message: 14/08/2007, 08h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo