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 :

[Tableaux] Syntaxe variable $figure$i où $i va de 0 à 10


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 24
    Par défaut [Tableaux] Syntaxe variable $figure$i où $i va de 0 à 10
    Bonjour
    Dans une boucle for, j'affiche les images d'un dossier.
    Ces images sont nommées figure1.jpg, figure2.jpg, etc..
    Seulement, je veux aussi donner un titre à chaque image.
    J'ai donc déclaré les variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $figure1 ='titre 1'; 
    $figure2='titre 2';
    etc..
    et dans ma boucle, mon erreur est ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for ($i = 1; $i <= 10; $i++)
    {
        echo "
    <img src=\"Figure$i.jpg'\" title=\"$figure$i\">
    Figure $i
    ";
    }
    Il en ressort que l'interpréteur ne connaît pas la variable $figure et donc affiche $i, au final j'ai comme titre :"1,2,...10"
    Est-il possible que la valeur de $i viennent se coller au mot figure pour avoir la variable correspondante (ex si $i=1, on aurait title = \"$figure1\")
    Merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    a tu essayé : $title = eval("$figure"+$i) ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 24
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $figure1 ='titre 1'; 
    $figure2='titre 2';
    for ($i = 2; $i <= 16; $i++)
    {
    $title = eval("$figure"+$i);
    echo "$title";
        echo "
    <img src=\"Figure$i.jpg\"title=\"$title\">
    ";
    }
    Comme ceci, je n'ai rien du tout... $title est vide apparement...

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Dans une boucle for, j'affiche les images d'un dossier.
    Ces images sont nommées figure1.jpg, figure2.jpg, etc..
    Seulement, je veux aussi donner un titre à chaque image.
    J'ai donc déclaré les variables
    Bin non, il fallait passer par un tableau. Mais si on suit ton chemin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php for ($i = 1 ; $i <= 10 ; $i++) : ?>
     
    <img src="<?php echo ${'figure' . $i} ?>.jpg">
     
    <?php endfor ?>
    Documentation :
    - http://fr3.php.net/manual/fr/languag...s.variable.php
    - http://fr3.php.net/manual/fr/control...ive-syntax.php

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 24
    Par défaut
    Cette dernière solution marche parfaitement,
    Merci beaucoup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for ($i = 2; $i <= 16; $i++)
    {
        echo "
    <img scr=\"Figure$i.jpg\" title=\"${'figure' . $i}\">
    ";
    }
    Ps : j'utilises une boucle for parce que j'ai déjà une mise en page de faite avec les images, et je peux facilement contrôler lesquelles je veux afficher, enfin ça me convient pour l'utilisation que j'en fait.
    Merci encore

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Par défaut
    Juste comme ça...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $titre = array(
        2 => 'titre2',
        3 => 'titre3',
        //...
        15 => 'titre15',
        16 => 'titre16'  // Attention, pas de virgule pour le dernier titre du tableau!
    );
     
    for ($i = 2; $i <= 16; $i++) {
        echo '<img scr="Figure'.$i.'.jpg" title="'.$titre[$i].'">';
    }
    Cela me parais plus facilement lisible ^^.

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

Discussions similaires

  1. [Tableaux] Syntaxe if ($variable == A ou B ou C .. ou Z)
    Par Sekisushai dans le forum Langage
    Réponses: 3
    Dernier message: 06/04/2008, 01h16
  2. [Tableaux] Syntaxe pour transmettre des variables
    Par kilkikou dans le forum Langage
    Réponses: 4
    Dernier message: 05/06/2006, 10h26
  3. [Tableaux] Récuperer variable dans une fonction
    Par amarcil dans le forum Langage
    Réponses: 12
    Dernier message: 12/02/2006, 10h56
  4. [Tableaux] syntaxe des guillemets
    Par tioseb dans le forum Langage
    Réponses: 13
    Dernier message: 31/01/2006, 14h35
  5. Syntaxe $(variable) ???
    Par Mr N. dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 08/12/2005, 13h59

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