Page 1 sur 1

PHP + HTML - Quelle syntaxe utiliser ?

Posté : 19 oct. 2011, 12:05
par Zahnzao
Salut,

Plus je lis des tutos et plus je rencontre deux façon d'associer php et html.

Ces deux scripts on exactement le même effet.
<?php 
if(isset($message)){ ?>
	<div class="bloc" id="errors">
	<?php
	foreach($message as $error){?>
		<p class="message">- <?php echo"$error";?></p><?php 
	}?>
	</div><?php
}?>
<?php 
if(isset($message)){
	echo"<div class='bloc' id='errors'>";
	foreach($message as $error){
		echo"<p class='message'>- $error</p>"; 
	}
	echo"</div>";
}?>
Y'a t'il une facon recommandée et des raisons à cela ?

J'aimerai aussi votre avis sur le fait d'utiliser de simples quotes dans l'exemple 2 pour les attributs html.

Merci.

Re: PHP + HTML - Quelle syntaxe utiliser ?

Posté : 19 oct. 2011, 12:20
par moogli
salut,

non c'est souvent une question de lisibilité du code au final qui prime.
tu a oublié la syntaxe heredoc et l'utilisation des ' (simple quote) comme délimiteur de chaine de caractère.

si tu veux être pointilleux tu n'utilisera pas de " car c'est plus lent que des ' (ben oui faut bien parser la chaine pour voir s'il y a des trucs à interpréter dedans).
D'ailleurs tu utilisera des virgules pour la concaténation à l'affichage plutôt que des points etc etc

le seul truc que je trouve vraiment "con" (désolé) c'est de faire un echo "$variable"; alors echo $variable; est tellement plus simple et éviter de lancer l'analyse de la chaine de caractère pour rien :mrgreen:

tu a aussi oublié, dans le même genre; la syntaxe alternative tu permettant de clarifié (peut être un peu le code au milieux du html)
par exemple
<?php
if ( 'truc' ) {
// 450000 ligne de code
} // arrivé la tu ne sais même plus pourquoi y a ça la :)
//ou 
if ('truc') : 
// 450000 ligne de code
endif; // a ben tiens la c'est la fin d'un if :)
?>
donc généralement on essai d'éviter de trop l'imbrication du php et du html. et quand on a pas le choix on évite le mélanger des syntaxes pour rester clair.

Après a toi de voir comment tu le sens mieux.

Perso j'aime bien la syntaxe heredoc mais sinon un echo pour eviter un <?php echo truc ?> toute les lignes :)

@+

Re: PHP + HTML - Quelle syntaxe utiliser ?

Posté : 19 oct. 2011, 12:34
par Zahnzao
Ok, donc en gros c'est chacun selon ses préférences.
le seul truc que je trouve vraiment "con" (désolé) c'est de faire un echo "$variable"; alors echo $variable; est tellement plus simple et éviter de lancer l'analyse de la chaine de caractère pour rien :mrgreen:
lol, le code que j'utilise est le 2 et je n'ai pas fais gaffe en modifiant que j'avais mis le $error entre quotes. Sinon je te rassure, je ne fais pas ça si je ne dois afficher qu'une variable. Parcontre j'évite de concaténer si je dois afficher une variable au milieu d'une chaine de caractère.

Donc si je te suis bien. C'est donc mieux de faire
echo"<p>Je m'apelle ".$nom."</p>";
que
echo"<p>Je m'apelle $nom</p>";
Si c'est le cas j'ai quelques echo à modifier :p

Re: PHP + HTML - Quelle syntaxe utiliser ?

Posté : 19 oct. 2011, 13:09
par xTG
C'est même mieux ainsi :
echo '<p>Je m\'apelle ',$nom,'</p>';

Re: PHP + HTML - Quelle syntaxe utiliser ?

Posté : 19 oct. 2011, 13:19
par Zahnzao
Ouep je viens de modifier toutes mes chaines de caractères, autant prendre les bonnes habitudes tout de suite ;)

Merci :)

Re: PHP + HTML - Quelle syntaxe utiliser ?

Posté : 19 oct. 2011, 13:41
par moogli
Ce ne sont pas forcément de mauvaise habitude, si tu regarde la doc généralement ce ne sont que des "pour les chaines de caractère.

C'est seulement si tu cherche à avoir de "meilleur" perf !


Après la concaténation évite des soucis avec les variables "complexe" par exemple echo "truc $_POST['machin'] et bidule "; tu ne sais pas si cela va être interprété ou pas ;)
il existe une syntaxe pour cela (avec les {} ) mais il faut le savoir et y penser.
La syntaxe avec les ' éviter d'avoir des cas différents où tu ne peux employer la même syntaxe.

Après c'est généralement une question de choix. Mais fois que tu commence continue :) exception fait quand tu utilise des ' et que tu souhaite ajouter des saut de ligne ou autre caractère "blanc" (\r, \n, \t,\s etc etc) qui eux ne sont interprété que dans les " ;)

@+

Re: PHP + HTML - Quelle syntaxe utiliser ?

Posté : 19 oct. 2011, 15:54
par Berzemus
Je viens de trouver un post qui dit que
echo"<p>Je m'apelle $nom</p>";
est plus rapide que
echo '<p>Je m\'apelle '.$nom.'</p>';
Surtout si le texte est long. Je peux comprendre :d'un côté c'est PHP qui effectue la concaténation, de l'autre c'est C qui effectue la substitution (le parsage), Et C est bien plus rapide que PHP, même sur des opérations bien plus lourdes.

Re: PHP + HTML - Quelle syntaxe utiliser ?

Posté : 19 oct. 2011, 16:09
par sam12
Je rajouterais que l'utilisation de la 1ere syntaxe (du 1er message) est lorsque tu as pas mal de lignes html.
Ça t'évite de "backslasher" toute ta page. Et puis commencer un echo en ligne 1 et le finir en ligne 400, ce n'est pas pratique ;)
Après c'est une question de point de vue (ou de flemme :lol:).

Sinon je suis d'accord avec le reste des messages précédents.

Re: PHP + HTML - Quelle syntaxe utiliser ?

Posté : 19 oct. 2011, 17:45
par moogli
Je rajouterais que l'utilisation de la 1ere syntaxe (du 1er message) est lorsque tu as pas mal de lignes html.
Ça t'évite de "backslasher" toute ta page. Et puis commencer un echo en ligne 1 et le finir en ligne 400, ce n'est pas pratique ;)
=> heredoc, ceci dit c'est un gros paquet pas besoin de echo

après je viens de voir un code avec <?php // un commentaire ?> ^^

@berzemus : intéressant merci pour l'info, j'étais resté sur je sais plus quel article, c'est con il pas testé avec les virgules ^^

bon ceci dit pour 60ms perso je vais resté sur mes habitudes je suis pas à ce point aux taquets (oui bon ça fait 20% de différence mais c'est pas grave ;) )

@+

Re: PHP + HTML - Quelle syntaxe utiliser ?

Posté : 19 oct. 2011, 21:11
par sam12
=> heredoc, ceci dit c'est un gros paquet pas besoin de echo
Quelque soit la méthode, tu es obligé de signaler le début et la fin de l'affichage ;)
Et puis j'étais parti de son code (donc avec echo) :P
après je viens de voir un code avec <?php // un commentaire ?> ^^
Jamais vu ça :shock:
Ça permet de mettre un commentaire "invisible" pour le visiteur sinon je ne vois pas d'autres intérêts. A moins de ne pas savoir comment faire un commentaire en html :lol:

Re: PHP + HTML - Quelle syntaxe utiliser ?

Posté : 19 oct. 2011, 21:35
par xTG
Je l'utilise couramment, c'est surtout pour un commentaire invisible pour qui n'a pas le code source.
Car bon mettre le @TODO ou bien d'autres informations du genre en commentaire HTML.... :roll: