[PHP] [résolu] Références/Pointeurs

Discussion dans 'Administration d'un site Web' créé par SuperPJ, 12 Avril 2005.

  1. SuperPJ
    SuperPJ WRInaute occasionnel
    Inscrit:
    15 Janvier 2005
    Messages:
    413
    J'aime reçus:
    0
    Voilà mon script :
    _____________________________
    $a = 'hello';
    $b = &$i." - $a\n";

    for ($i=1;$i<=3;$i++)
    {
    echo $b;
    };
    _____________________________

    Je voudrais que le résultat soit :
    1 - hello
    2 - hello
    3 - helo

    Mais le script m'affiche :
    123 :'(

    Notez que le script final est beaucoup plus complexe, mais ce que je veux faire c'est stocker dans $b une chaine de caractères qui contient un alias de $i. Je précise que $b doit être défini avant la boucle FOR.

    Comment faire ? :-(
     
  2. rottman
    rottman WRInaute passionné
    Inscrit:
    6 Janvier 2004
    Messages:
    1 804
    J'aime reçus:
    0
    $a = "hello";
    for ($i=1;$i<4;$i++)
    {
    echo "$i - $a\n";
    };
     
  3. rottman
    rottman WRInaute passionné
    Inscrit:
    6 Janvier 2004
    Messages:
    1 804
    J'aime reçus:
    0
    Ou :

    $a = "hello";

    function ligne($i) {
    echo "$i - $a";
    }

    for ($i=1;$i<4;$i++)
    {
    ligne($i);
    };
     
  4. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    hhmm, $a est vide dans ta fonction ligne(), tu l'a pas déclarée en globale.


    >> echo "$i - $a\n";
    echo "$i - $a<br/>"; plutôt
     
  5. shrom
    shrom WRInaute impliqué
    Inscrit:
    5 Juillet 2004
    Messages:
    781
    J'aime reçus:
    0
    Re:
    PHP:
     Références/Pointeurs question simple réponse diffi[/b]

    [
    quote="SuperPJ"]Voilà mon script :
    _____________________________
    $a 
    'hello';
    $b = &$i." - $a\n";
    [/
    quote]

    La référence n'a rien à faire là. Ce que tu veux faire c'est faire une evaluation à l'intérieur de ta boucle sachant que le code de l'évaluation doit être défini avant la boucle.

    La meilleure solution pour faire ce que tu veux faire est de créer une fonction anonyme:
    [
    code]$b create_function'''global $i,$a; return $i." - ".$a;');[/code]

    Ensuite tu fais ta boucle
    [code]for ($i=1;$i<=3;$i++)
    {
    echo 
    $b();
    }
    [/
    code]
     
  6. SuperPJ
    SuperPJ WRInaute occasionnel
    Inscrit:
    15 Janvier 2005
    Messages:
    413
    J'aime reçus:
    0
    Re:
    PHP:
     Références/Pointeurs question simple réponse diffi[/b]

    [
    quote="shrom"]$b create_function'''global $i,$a; return $i." - ".$a;');

    for (
    $i=1;$i<=3;$i++)
    {
    echo 
    $b();
    }[/
    quote]
    Excellent Shromc'est exactement ce que je voulais faire !! :o 

    Sinon j'
    ai aussi trouvé mon bonheur dans la fonction 'eval()'mais elle est beaucoup moins pratique à utiliser que ta méthodedans mon cas précis (qui est beaucoup plus complexe que le code que j'ai cité en exemple).

    Bref merci à toi, mais aussi à Rottman pour avoir tenté de m'
    aider c'est toujours sympa ;)


    PS : E-kiwi vu ta réponse tu n'
    es pas une demoiselle en effet ;) (hélas :)
     
  7. shrom
    shrom WRInaute impliqué
    Inscrit:
    5 Juillet 2004
    Messages:
    781
    J'aime reçus:
    0
    Re:
    PHP:
     Références/Pointeurs question simple réponse diffi[/b]

    [
    quote="SuperPJ"]Sinon j'ai aussi trouvé mon bonheur dans la fonction 'eval()',[/quote]

    '
    eval()' est une fonction très gourmande en ressources système, si tu as la possibilité, il vaut mieux utiliser les fonction anonymes avec 'create_function()'
     
  8. SuperPJ
    SuperPJ WRInaute occasionnel
    Inscrit:
    15 Janvier 2005
    Messages:
    413
    J'aime reçus:
    0
    RECU 7 SUR 7 ;)
     
Chargement...
Similar Threads - [PHP] [résolu] Références Forum Date
[PHP] Détecter l'OS, le navigateur et la langue [Résolu] Développement d'un site Web ou d'une appli mobile 4 Mars 2012
[RESOLU] [PHP] Lire une position précise à une ligne précise Développement d'un site Web ou d'une appli mobile 28 Juillet 2010
[PHP] Réordonner un tableau [RESOLU] Développement d'un site Web ou d'une appli mobile 12 Mars 2010
[Résolu][PHP] session_start() Développement d'un site Web ou d'une appli mobile 12 Janvier 2010
[Résolu][PHP] Insertion toutes les n fois Développement d'un site Web ou d'une appli mobile 1 Octobre 2006
[Résolu] [PHP] Email de confirmation Administration d'un site Web 3 Mai 2005
[Resolu][PHP] Comment dédoubler (filtrer) propremt un site ? Administration d'un site Web 13 Septembre 2004
[Résolu][PHP] Problème sur une fonction avec un serveur UNIX Administration d'un site Web 2 Juin 2004
Astuce [PHP] Récolter ville, pays du visiteur Développement d'un site Web ou d'une appli mobile 9 Mars 2021
[PHP] Détecter le navigateur / bot en fonction du HTTP_USER_AGENT Développement d'un site Web ou d'une appli mobile 14 Septembre 2019
[PHP] Détecter le navigateur / bot en fonction du HTTP_USER_AGENT Développement d'un site Web ou d'une appli mobile 12 Janvier 2017
[PHP] Cookie vide dans une fonction, complet juste avant ou après Développement d'un site Web ou d'une appli mobile 25 Novembre 2014
[php] Cookie d'un domaine vers un sous-domaine Développement d'un site Web ou d'une appli mobile 29 Août 2014
[PHP]Cci mails Développement d'un site Web ou d'une appli mobile 18 Août 2014
[PHP] gethostbyname Développement d'un site Web ou d'une appli mobile 15 Février 2014
[PHP] file_get_contents retourne un "Connection timed out" Développement d'un site Web ou d'une appli mobile 14 Février 2014
[PHP] Regex Complexe Développement d'un site Web ou d'une appli mobile 29 Octobre 2013
[PHP] Formulaire dynamique Développement d'un site Web ou d'une appli mobile 2 Mai 2013
[php] error suite à code antiduplication Développement d'un site Web ou d'une appli mobile 5 Février 2013
[PHP] Condition et include Développement d'un site Web ou d'une appli mobile 31 Janvier 2013