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 :

[PHP-JS] echo ou pas echo ?


Sujet :

Langage PHP

  1. #1
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut [PHP-JS] echo ou pas echo ?
    Bonjour,

    Bon je debute le PHP et je suis surpris par certains codes ...

    en effet lorseque je code mon PHP j'aurais tendance à code le html normalement et n'ouvrir les balise php que lorsue c'est nécessaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <html>
    <head>
    <title><?php  echo $titre; ?></title>
    </head>
    <body>
    <p>un paragraphe</p>
    <?php include($page); ?>
    </body>
    mais je vois très souvent des codes qui intègrent le html dans le php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo ('<html>');
    echo ('<head>');
    echo('<title>' . $titre .'</title>')</head>
    ....
    Quelle est la bonne façon de faire si toute fois il y en a une ?
    Quels sont les avantages et inconvéniants de chaque syntaxe ?

    Autant prendre de bonne habitudes dès le départ ...

    Merci de vos conseils

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    J'ai eu la sensation, à force de lire ce forum, que c'est plutot une question de gout/lisibilité qu'autre chose en fait. Certains séparent au maximum le html du php, d'autres n'affichent le html qu'à travers des echo etc, je pense qu'il faut essayer et voir ce qu'on prefere.
    Personnellement j'ai tendance à mixer les deux : quand je fais une table en html je trouve ca plus clair de n'ouvrir les balises que pour afficher le contenu de la cellule et de pouvoir bien indenter le html. Par contre quand j'affiche une liste déroulante remplie avec des valeurs php, c'est plus simple de faire des echo plutot que d'ouvrir fermer les balises php partout (pour la boucle, pour la valeur de l'option, pour son contenu, pour la fin de boucle).

    EDIT: et pour echo tu n'as pas besoin des () en fait, tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "Bonjour ". $nom . "comment vas-tu";

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Personnellement, je pense que comme vous l'avez dit, les deux méthodes se valent sur le plan de la performance.
    Ceci dit, moi aussi, je mixe les deux. J'essaie de regrouper le plus de traitements possible dans mes balises php, et si je dois afficher du code html lors de ce traitement, je le mets dans du echo pour garder une lisibilité du bloc traitement sur lequel je travaille.
    Sinon, tout le code html qui ne dépend que peu ou pas du tout de mon php, je le garde en clair, sans echo.

    Mais comme vous l'avez dit, c'est un peu chacun ses gouts.

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Personnellement j'ai tendance à bien séparer le code HTML du code PHP, question de lisibilité, notamment grâce aux éditeurs de texte qui mettent les codes en couleur, donc ne pas avoir le code HTML tout rouge, et aussi question de maintenabilité. Il est plus facile de maintenir un code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <p id="truc">
       <?php echo $bidule ?>
    <p>
    que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<p id="truc">'.$bidule.'<p>';
    Après, c'est de l'ordre du goût personnel.

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    ha ben voilà qui est rassurant, j'avais peur que les performances n'en soient affectées...
    J'avoue qu'étant issu de html javascript, j'aurais plutot tendance à faire comme mon fillot (Bisunurs)...
    Et il est vrai que la coloration syntaxique plaide en faveur de la séparation.

    Merci de vos conseils


    Je ne ferme pas le poste immédiatement si vous avez d'autres commentaires ...

  6. #6
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Personnellement j'essaye de séparer au plus le code HTML et le code PHP pour la lisibilité

    Néanmoins si je suis dans une boucle ou un if, j'ai tendance à ne pas fermermon php et utiliser des echos afin de conserver une structure de bloc.

    Bref je fais comme raideman

    Mes deux centimes

  7. #7
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut


    En terme de rapidité, c'est plus rapide de tout mettre dans un echo au lieu d'ouvrir et de fermer tes balises chaque fois que tu fais un appel PHP mais c'est sur que niveau lisibilité, c'est pas top.

    Sinon plutôt que de tout séparer, autant utiliser un template : http://cyberzoide.developpez.com/php4/template/

    PS : Puisqu'on est dans les echos, ne fais jamais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "mon texte : $ma_var";
    préfères-y ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "mon texte : ".$ma_var;
    voir mieux, ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'mon texte : '.$ma_var;

  8. #8
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    +1 pour ce qu'a dit trotters213.

    Si c'est pour séparer le code php du html comme Bisûnûr autant prendre un moteur de template et le faire complètement.

    Sinon mettre tout dans des echo est bien plus lisible que d'ouvrir et fermer les balise <?php ?> à chaque fois. J'aime pas du tout mélanger du code php/html alors tout passe par des echo.

  9. #9
    Membre habitué
    Avatar de Amnesiak
    Profil pro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 151
    Points
    151
    Par défaut
    Citation Envoyé par trotters213
    voir mieux, ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'mon texte : '.$ma_var;
    Voir même encore mieux d'un point de vue performances :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'mon texte : ', $ma_var;
    Ceci afin d'épargner une concaténation de chaine

  10. #10
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    Citation Envoyé par Amnesiak
    Voir même encore mieux d'un point de vue performances :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'mon texte : ', $ma_var;
    Ceci afin d'épargner une concaténation de chaine
    C'est de très très loin recommander de faire ce genre de fantaisie il me semble.

  11. #11
    Membre habitué
    Avatar de Amnesiak
    Profil pro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 151
    Points
    151
    Par défaut
    Absolument ! Comme l'indique son prototype, echo accepte un nombre variable d'arguments. Il est donc intéressant d'en profiter plutôt que forcer une concaténation systématique non obligatoire. print() par contre ne le permet pas...
    void echo ( string arg1 [, string ...] )

  12. #12
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    Ton code dépend aussi de ton habitude de travail... Si tu reprend le code d'un CMS (ou le code est déjà écrit) il vaut mieux continuer dans la même forme afin d'uniformiser la structure de ton code !

  13. #13
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Citation Envoyé par Amnesiak
    Voir même encore mieux d'un point de vue performances :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'mon texte : ', $ma_var;
    Ceci afin d'épargner une concaténation de chaine
    C'est strictement pareil

  14. #14
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    C'est de très très loin recommander = c'est pas recommander du tout

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

Discussions similaires

  1. [PHP-JS] Image cliquable via echo
    Par Martony74 dans le forum Langage
    Réponses: 11
    Dernier message: 24/10/2008, 00h07
  2. Formulaire avec du PHP qui ne marche pas !
    Par Sandara dans le forum Langage
    Réponses: 19
    Dernier message: 02/06/2006, 18h26
  3. [PHP-JS] [Javascript Client et PHP server]J'ai pas compris..
    Par Jean_Benoit dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/05/2006, 12h05
  4. Page de login -- script PHP qui ne marche pas
    Par Alexlesilex dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 24/04/2006, 16h32
  5. Réponses: 1
    Dernier message: 14/02/2006, 17h06

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