Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/08/2007, 10h11   #1
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 120
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 120
Points : 45 283
Points : 45 283
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 :
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 :
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
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 10h15   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
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 :
echo "Bonjour ". $nom . "comment vas-tu";
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 10h19   #3
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
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.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 10h22   #4
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
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 :
1
2
3
<p id="truc">
   <?php echo $bidule ?>
<p>
que

Code :
echo '<p id="truc">'.$bidule.'<p>';
Après, c'est de l'ordre du goût personnel.
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 10h27   #5
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 120
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 120
Points : 45 283
Points : 45 283
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 ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 10h30   #6
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
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
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 10h38   #7
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605


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 :
echo "mon texte : $ma_var";
préfères-y ceci :
Code :
echo "mon texte : ".$ma_var;
voir mieux, ceci :
Code :
echo 'mon texte : '.$ma_var;
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 13h43   #8
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
+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.
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 14h21   #9
Membre habitué
 
Avatar de Amnesiak
 
Geoffray
Inscription : août 2002
Messages : 137
Détails du profil
Informations personnelles :
Nom : Geoffray
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : août 2002
Messages : 137
Points : 122
Points : 122
Citation:
Envoyé par trotters213
voir mieux, ceci :
Code :
echo 'mon texte : '.$ma_var;
Voir même encore mieux d'un point de vue performances :
Code :
echo 'mon texte : ', $ma_var;
Ceci afin d'épargner une concaténation de chaine
Amnesiak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 14h39   #10
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Citation:
Envoyé par Amnesiak
Voir même encore mieux d'un point de vue performances :
Code :
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.
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 15h10   #11
Membre habitué
 
Avatar de Amnesiak
 
Geoffray
Inscription : août 2002
Messages : 137
Détails du profil
Informations personnelles :
Nom : Geoffray
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : août 2002
Messages : 137
Points : 122
Points : 122
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...
Citation:
void echo ( string arg1 [, string ...] )
Amnesiak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 15h46   #12
Modérateur
 
Avatar de Dsphinx
 
Homme
Développeur Web
Inscription : septembre 2005
Messages : 1 032
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 032
Points : 754
Points : 754
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 !
__________________
Les cours: XHTML, CSS, PHP, Flash et Javascript
Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
Aucune question technique par MP.
Dsphinx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 16h41   #13
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
Citation:
Envoyé par Amnesiak
Voir même encore mieux d'un point de vue performances :
Code :
echo 'mon texte : ', $ma_var;
Ceci afin d'épargner une concaténation de chaine
C'est strictement pareil
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 00h48   #14
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
C'est de très très loin recommander = c'est pas recommander du tout
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h44.


 
 
 
 
Partenaires

Hébergement Web