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 :

Cannot use a scalar value as an array (again)


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Programmeur fou
    Inscrit en
    Octobre 2010
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Programmeur fou

    Informations forums :
    Inscription : Octobre 2010
    Messages : 346
    Points : 222
    Points
    222
    Par défaut Cannot use a scalar value as an array (again)
    Bonjour à tous,

    J'ai beau lire et relire la doc, je ne trouve pas la raison à mon problème.

    Soit le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $level = 1;
    $i[$level] = 0;			// indice de la colonne par niveau.
    $j = 0;                         // nb d'occurrences du fetch
    while ($data_1 = mysql_fetch_array($rs_1))
    {
    	$first_name = $data_1['first_name'];
    	$last_name  = $data_1['last_name'];
    	$email      = $data_1['email'];
    	$shop       = $data_1['shop'];
    	$j = $j + 1;
    	$i[$level] = $j;
    et là j'ai "Cannot use a scalar value as an array". Pourquoi il ne me le dit pas à la ligne 2 si c'est incorrect, svp ?
    Merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Sur quelle ligne as-tu l'erreur ?
    Tu peux mettre des var_dump() pour contrôler.

  3. #3
    Membre actif
    Homme Profil pro
    Programmeur fou
    Inscrit en
    Octobre 2010
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Programmeur fou

    Informations forums :
    Inscription : Octobre 2010
    Messages : 346
    Points : 222
    Points
    222
    Par défaut
    ébé, à la ligne 11 comme j'ai montré.
    les var_dump donnent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $j = $j + 1;
    var_dump($i);
    var_dump($level);
    var_dump($i[$level]);
    $i[$level] = $j;
     
    int(12)
    int(1)
    NULL
    pourquoi il ne me dit pas
    var_dump($i[$level]) = 0 ?
    et 0 + 1 ça fait 1, non ?
    Merci.

  4. #4
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    $i est -il vraiment un tableau ? Tu le trafiques pas à un moment ? C'est ce qu'indique l'erreur et ce que confirme le var_dump de $i qui affiche un entier et non un tableau.

  5. #5
    Membre actif
    Homme Profil pro
    Programmeur fou
    Inscrit en
    Octobre 2010
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Programmeur fou

    Informations forums :
    Inscription : Octobre 2010
    Messages : 346
    Points : 222
    Points
    222
    Par défaut
    j'utilise l'auto déclaration
    je n'utilise pas de $i avant
    le premier est celui indiqué dans mon extrait de code
    donc, le $i[$level] est pour moi un tableau à une dimension, numérique
    j'en perds mon Latin-1

  6. #6
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Et bien justement initialise le clairement comme un tableau. Même si PHP le permet, toujours préférer déclarer ses variables avant de les utiliser, c'est plus clair et ça t'évitera des erreurs comme ça.

  7. #7
    Membre actif
    Homme Profil pro
    Programmeur fou
    Inscrit en
    Octobre 2010
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Programmeur fou

    Informations forums :
    Inscription : Octobre 2010
    Messages : 346
    Points : 222
    Points
    222
    Par défaut
    Oui, tu as raison.
    Que proposes-tu comme syntaxe de déclaration, stp ?
    Merci.

  8. #8
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Eh bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $i = array();
    // ou depuis php 5.4
    $i = [];

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pourquoi : Cannot use a scalar value as an array ?
    Par [ZiP] dans le forum Langage
    Réponses: 2
    Dernier message: 04/02/2011, 19h11
  2. [PHP 5.2] Fatal error: Cannot use object of type CPanier as array in . .
    Par Gauldo dans le forum Langage
    Réponses: 10
    Dernier message: 12/01/2009, 14h53
  3. Réponses: 3
    Dernier message: 18/01/2007, 18h26
  4. Réponses: 1
    Dernier message: 17/09/2006, 23h02
  5. Réponses: 4
    Dernier message: 23/06/2006, 20h03

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