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 :

Expression dans une chaîne


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Février 2009
    Messages : 256
    Points : 79
    Points
    79
    Par défaut Expression dans une chaîne
    Bonjour,
    dans une chaîne, il est possible d'avoir une variable qui sera remplacée par sa valeur, par ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "ceci est un $truc"
    C'est bien pratique, mais dans le même genre, est-il possible d'utiliser une expression à la place d'une simple variable ?

  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
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Février 2009
    Messages : 256
    Points : 79
    Points
    79
    Par défaut
    Avec str_replace() ?
    Mais str_replace() n'évaluera pas l'expression.

    Ce que je voudrais (comme en ColdFusion) c'est que par exemple ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $truc = "drôle de";
    $chose = " machin";
    echo "ceci est un ($truc . $machin)";
    ... exécute la concaténation et produise "ceci est un drôle de machin" au lieu de "ceci est un drôle de . machin"
    Ou encore pouvoir écrire qqch comme echo "aujourd'hui on est le date('dd/mm/YYYY')<BR>"; et que la fonction date soit exécutée
    au lieu de echo "aujourd'hui on est le " . date('d/m/Y') . "<BR>";.
    Le tout dans un contexte plus complexe, naturellement.

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Non ce n'est pas possible. Si tu veux constituer une chaîne tu dois faire une concaténation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = "total: " . ($a+$b) . "$";
    Par contre dans le cas d'un affichage, tu peux éviter la concaténation en affichant à la suite à l'aide de virgules:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "total: ", $a+$b, "$";
    Après tu peux toujours utiliser les chaînes formatées comme dans les trois quarts des langages:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = sprintf("total: %.2f$", $a + $b);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("total: %.2f$", $a + $b);
    Avec ton exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo "ceci est un " . ($truc . $chose);
    echo "ceci est un " . $truc . $chose;
    echo "ceci est un ", $truc, $chose;
    printf("ceci est un %s", ($truc . $chose));
    printf("ceci est un %s%s", $truc, $chose);
    À noter qu'un printf est bien plus lent qu'un simple echo avec concaténation ou pas, mais bon ça permet plus de choses.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Février 2009
    Messages : 256
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    Non ce n'est pas possible.
    Ah :-( Dommage, merci.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/11/2012, 15h25
  2. Réponses: 13
    Dernier message: 30/06/2010, 15h23
  3. Réponses: 9
    Dernier message: 02/05/2007, 14h59
  4. Réponses: 4
    Dernier message: 11/08/2006, 13h47
  5. Comptage de mots dans une chaîne
    Par kikinou dans le forum Pascal
    Réponses: 10
    Dernier message: 01/01/2003, 02h27

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